Mike Lang
e4706232ad
cutter: Fix bug in handling cancellation before finalize
...
it would always think it's finalized
5 years ago
Mike Lang
4c0e20983c
Local upload backend: Always use .ts extension
...
Now that we're doing that for both fast and full cuts.
5 years ago
Mike Lang
1cb4d41334
cutter: Set upload time when marking video as done without transcoding
5 years ago
Mike Lang
a7ac264201
cutter: Fix local upload backend, which was returning video id as a uuid
...
instead of a string
5 years ago
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