Commit Graph

1203 Commits (37dd7c3e4f8da25dbe66c79294f8df1f7912c0c2)
 

Author SHA1 Message Date
Mike Lang 5921066ee0 docker-compose: Pass node name into cutter
Otherwise it doesn't have a stable node name (hostname inside containers
is random) and this results in orphaned videos on unclean shutdown.
5 years ago
Mike Lang da58021c6f cutter: Fix typo where encoding settings had wrong name 5 years ago
Mike Lang 8739a7a24a thrimbletrimmer: Popup on save draft
so we know it succeeded
5 years ago
Mike Lang 2342b66db0 thrimbletrimmer: Don't open advanced pane if upload_location is null 5 years ago
Mike Lang e95957c54f thrimbletrimmer: Widen trim time textboxes to fit timestamps
This might be because I'm not using webfonts or some malarkey.
5 years ago
Mike Lang 4f6f4cad8b sheetsync: Fix typos with metrics 5 years ago
Mike Lang 2554b72c3a Fix slightly wrong default sheet name 5 years ago
Mike Lang 6724027e5a segment_coverage: Reduce missing channel/quality to warning 5 years ago
Mike Lang 4d5157cdb5 Fix a mistake with allowing reuse of name in @timed() 5 years ago
Mike Lang 1ef15780df cutter: Fix lack of info in error handling 5 years ago
Mike Lang 71333cf826 backfiller: Only run one manager, not one per channel
Then treat backfilling each channel just like backfilling each quality.

This is conceptually simpler (only one kind of thing, a (channel, quality))
and has better behaviour when a node is down (we only have one lot of error handling around it).

It also means we aren't asking the database for the same info once per channel,
and cuts down on logging noise.
5 years ago
Mike Lang a6cd07077a docker-compose: Wrap DSN values in quotes so spaces are allowed 5 years ago
Mike Lang ff18c7df54 backfiller: Fix issue with tracking metrics after get_nodes() failure
There isn't an easy, clean way to pass in the DB hostname there,
and neither label is very valuable. Let's just drop it entirely.
5 years ago
Mike Lang 6c6c1ae637 downloader: Make a few things quieter for non-important channels 5 years ago
Mike Lang 426b1328be Fix mistakes in common.requests 5 years ago
Mike Lang c1cb7966af cutter: Default to full cuts, not fast 5 years ago
Mike Lang b2a07ef114
Merge pull request #140 from ekimekim/mike/build-improvements
Refactor dockerfiles for more shared layers
5 years ago
Mike Lang 9e6cd71026
Merge pull request #137 from ekimekim/mike/downloader/less-important-channels
downloader: Create concept of an "important" channel
5 years ago
Mike Lang 8d3c863a49
Merge pull request #138 from ekimekim/mike/thrimbletrimmer/cancel-upload
Allow thrimshim to safely cancel a job while it is cutting
5 years ago
Mike Lang 679f1f7408
Merge pull request #139 from ekimekim/mike/restreamer/cut-types
restreamer: Add more options for fetching cuts
5 years ago
Mike Lang 751472217b Default to using the current commit, instead of latest
This is generally what you want, and will behave better than using latest.
5 years ago
Mike Lang 731ef9e2d0 Refactor dockerfiles for more shared layers
By carefully ensuring most of our dockerfiles are identical in their first few layers,
we only need to build those layers once instead of every time.

In particular, we move installing gevent to before installing common,
so that even when common changes gevent doesn't need to be reinstalled.

This is important because gevent takes ages to install.

Also fixes segment_coverage, which wasn't being installed.
5 years ago
Mike Lang a7f5d1c545 Fix issues with metrics gathering for cut functions
* Need to allow timed() to have multiple callers with same name
* "type" label is reserved, use "cut_type" instead
5 years ago
Mike Lang 58d09b419c thrimbletrimmer: Add option to select cut type for Download button
In most cases, you want "rough" because you're going to trim the resulting
video later anyway.
5 years ago
Mike Lang eb4fb5a9e1 restreamer: Add more options for fetching cuts
Split full cut into two types - an mpegts one and an mp4 one.
Add "rough" cut which is just a concat of the segments.
5 years ago
Mike Lang cc48f17348 thrimbletrimmer: Add cancel row button using the new thrimshim functionality 5 years ago
Mike Lang 3dfe0e8722 Allow thrimshim to safely cancel a job while it is cutting
This differs from the existing reset row by only suceeding if the upload is not
in finalizing.

We also make some changes to cutter to handle this situation gracefully.
5 years ago
Mike Lang b2cd0fa6f7 docker-compose: Support channel importance markers
Only pass them to downloader, strip them otherwise.
5 years ago
Mike Lang 83750da37b downloader: Create concept of an "important" channel
In our usage, we have one channel where we really care / want to know if it's down,
but also a bunch of other channels where they're expected to not be streaming most/all of the time.

To prevent these extra channels making a ton of noise, we introduce the concept of an "important"
channel, indicated by appending a '!' to the channel name in the command line.

So for example, you might specify channels as "foo! foo_backup foo_behindthescenes".

Important channels have the same behaviour as previously.

Non-important channels:
* Have a 20-second retry on a master playlist fetch failure, instead of 5
* Log at debug when the stream is down, instead of info.
5 years ago
Mike Lang b27e06d068 Fix typo in common/common/segments.py 5 years ago
Mike Lang 0305c0797f
Merge pull request #136 from ekimekim/mike/cut-maybe-stream
full cut: Optionally use seekable file OR directly stream
5 years ago
Mike Lang 4d52b18b04 cutter,restreamer: Set stream=True for full cuts when appropriate
And also default to a new ffmpeg encoding setting for high-quality mpegts
(ie. still streamable) that is encoded very quickly.
5 years ago
Mike Lang 9afcc7b399 full cut: Optionally use seekable file OR directly stream
The caller can pick depending on the needs of the output format.

This reverses most of 80d829b83b,
re-introducing streaming full cuts but keeping non-streaming as an option.
5 years ago
Mike Lang 981b89551e
Merge pull request #133 from ekimekim/mike/more-metrics
Add lots of metrics
5 years ago
Mike Lang 1574f319c6
Merge pull request #134 from ekimekim/mike/thrimbletrimmer/streaming-page
Adds a dedicated streaming page for giffers etc, and more thrimbletrimmer things
5 years ago
Mike Lang bdbfd37c51 thrimbletrimmer: Pad start and end times 5 years ago
Mike Lang a68684c24c thrimbletrimmer: Fix use of tabs again 5 years ago
Mike Lang 26f91a02ea thrimbletrimmer: Parse durations as HH[:MM[:SS]] instead of [[HH:]MM:]SS
ie. 1:00 is 1 hour, not 1 minute.

This is consistent with our use of bustime everywhere else.
5 years ago
Mike Lang a6ee746e6b thrimbletrimmer: disable autoplay 5 years ago
Mike Lang 7edc6ac149 thrimbletrimmer: Some tweaks to the streaming page 5 years ago
Mike Lang 5d5358019a thrimbletrimmer: Improve bustime/ago parsing
Allow partial entries like 5:00 instead of 0:05:00.
5 years ago
Mike Lang ff43e186f6 thrimbletrimmer: Support "time ago" as a third time format
This is especially useful for the re-streaming page, and is default there.
5 years ago
Mike Lang d4c8974601 thrimbletrimmer: Some video controls tweaks
Allow fullscreen

Hide disabled picture-in-picture control

Autoplay
5 years ago
Mike Lang b4310b0024 restreamer: Allow blank start/end for cut
So it acts the same as generating a playlist.
5 years ago
Mike Lang 47ac1c7ff8 thrimbletrimmer: Add second page built for watching stream with a delay
This is for giffers, etc.

It shares the codecase but uses a flag to say whether to affect all the editor inputs.
5 years ago
Mike Lang 671079861a thrimbletrimmer: Fix lack of usage of var throughout code
Chalk this one up to not knowing the language.
You need to declare variables as var otherwise they're implicitly globals.

This leads to many bugs where if a function runs twice at once it'll do weird things.
5 years ago
Mike Lang 8accc1338e thrimbletrimmer: Refactor how time formatting is handled
Instead of having two input fields and switching between them,
we just have one and re-write the value on switch.

We also handle invalid or empty dates a LOT better, and clean up some
other things around query strings.
5 years ago
Mike Lang 316504899a thrimbletrimmer: Fix a bug on initial load
loadPlaylist was happening before bustime was set, resulting
in the wrong times being loaded.
5 years ago
Mike Lang 971841d73b thrimbletrimmer: Move last bit of code into IO.js
since everything else is there anyway.
5 years ago
Mike Lang c740090c53 sheetsync: Add more metrics 5 years ago