Commit Graph

1130 Commits (b46d9f30bbec40931f476358b3428582f91ac0c6)
 

Author SHA1 Message Date
ElementalAlchemist d979b40d9f Make the first chapter marker uneditable and tie it to the first range start time
This is a more usable enforcement of the requirement that YouTube enforces for the first chapter to be at the exact beginning of the video.
10 months ago
Mike Lang 2ae273a75c bus_analyzer: Parse the final odo digit 10 months ago
Mike Lang 907d1ba6f9 Add a blank prototype which invalidates the odo if matched 10 months ago
Mike Lang 19f169e750 bus_analyzer: Move prototypes into subdir and allow non-digits 10 months ago
Mike Lang 5e43446c92 bus_analyzer: Add a testing routine to check analyzer changes 10 months ago
Mike Lang a4eceea958 odo extraction: Look for digit y-level for all main digits together
They should all be at the same y level, and the extra data helps avoid traps
when the digit has few pixels (eg. a 1).
10 months ago
Mike Lang 30f05b0656 thumbnails: Add a CLI for generating them directly 10 months ago
Mike Lang 720f1c4b41 thrimshim: Sanity checks for odometer 10 months ago
Mike Lang dbf9f5c8de bus_analyzer: Drop the odometer threshold so we don't reject things at night 10 months ago
Mike Lang e38d21fb61 bus analyser: add a frame extraction cli command 10 months ago
Mike Lang 06cd5d48ee More extrapolation fixes 10 months ago
Mike Lang 834dc55b41 thrimshim: Fix typo in odo extrapolation 10 months ago
Mike Lang f0e2aae519 thrimshim: Fix odometer endpoint 10 months ago
Mike Lang a83dbb58f7 thrimshim: Fix default templates 10 months ago
Mike Lang e7c402c5e2 schedulebot: Make user ids case-insensitive 10 months ago
Mike Lang b6d71297c6 bus_analyzer: Make dockerfile work 10 months ago
Mike Lang f969921ae3 bus_analyzer: Import existing extractor code and get it working
This was worked on out-of-repo for a while. But now it's ready to be integrated.
10 months ago
Mike Lang 9e988c0d43 Add a "prototype" of each odometer digit
This is an averaged, normalized version of a number of examples of each digit in the odometer.
It does not include the last digit which looks different.

These prototypes are used to recognize the digits in buscam data.
10 months ago
Mike Lang ce665047ac Add bus_analyzer to docker-compose 10 months ago
Mike Lang 76daceff19 bus_analyzer: initial implementation 10 months ago
Mike Lang 734a7371f3 Add bus_data DB table and have thrimshim able to query it for latest odo reading 10 months ago
Mike Lang fccec1ace0 downloader: Fix a bug where hashes are miscalculated
due to not including the map data in the hash calculation.

This is only relevant for streams with map data, which does not include twitch or youtube URLs.
10 months ago
Mike Lang 590e056f7a docker-compose: Add support for backfill only, chat only channels
And don't try to archive twitch chat for non-twitch channels
10 months ago
Mike Lang 3e836b935b grafana: Disable analytics 11 months ago
Mike Lang 3df15b5784 grafana: Make it HTTPS
Note this introduces two files the user must provide.
We set up the makefile to fail if they don't exist.
11 months ago
Mike Lang 1e6b8e576e grafana: Use config file instead of env vars 11 months ago
Mike Lang 5f42b8419e downloader: Hard-code source quality for non-twitch providers
since they can't do any other quality, but we still want to be able to set other qualities
for twitch streams.

Really qualities should be per-channel but I'm being lazy.
11 months ago
Mike Lang 304e7b0fd9 downloader: Install yt-dlp in docker container
for youtube support
11 months ago
Mike Lang 0192e5246a docker-compose: Add support for new channel format 11 months ago
Mike Lang 18b71e6f5f downloader: Add youtube support
Adds very simple youtube stream support where we only ever use the "best" quality,
which we call "source" for consistency with twitch.

We use yt-dlp to do the heavy lifting of getting the playlist url out of youtube.
11 months ago
Mike Lang 05349a62df downloader: Prepend any HLS "map" data to every segment
In some formats, most notably DASH, there is a "initialization data" that is required
in order to play the segment. The data is common to all segments so it is served as a seperate URL
under EXT-X-MAP. However, redundant copies of this data are benign and it's very small, so
we just put it in front of EVERY segment so that we can play every one independently (but
concatenating them still works).

We use a very simple cache to avoid downloading it again for every segment.
11 months ago
Mike Lang e4252544be downloader: Add ability to download from an arbitrary playlist URL
This is a very limited feature, it can't handle multiple qualities.
You must use "source" only and it takes the first available rendition.
11 months ago
Mike Lang 7a75442243 downloader: rename twitch.py to providers.py
Since it will now contain non-twitch providers also.
11 months ago
Mike Lang bc08d97e56 downloader: Add framework to allow alternate "providers" besides twitch
This abstracts out the process of obtaining media playlists so that we can support non-twitch
streaming services.
11 months ago
Mike Lang 30c1877b36 Fix bugs with chat_archiver
* Order of arguments matters - option can't be between other positional args and *args
* Messed up the count structure
11 months ago
Mike Lang 66603bf648 docker-compose: Update some defaults
These more closely match our actual run usage
11 months ago
Mike Lang c3d5405ebc docker-compose: archive sheet support 11 months ago
Mike Lang b93597c274 sheetsync: Support archive sheet 11 months ago
Mike Lang 8d984110ab thrimshim: Special handling for "archive" events 11 months ago
Mike Lang 4d9d444cc3 cuter: local upload backends: Use _ instead of - as replacement char
This is apparently nicer to deal with in URLs.
11 months ago
Mike Lang 80c9be0baf cutter: Get archive cut working 11 months ago
Mike Lang 4c70878a53 cutter: Fix bug when no thumbnail set 11 months ago
Mike Lang 0164f9def8 schedulebot: Don't set groups before the run starts
This is mainly a problem with groups_by_shift which will be set
even for negative hours that aren't on the schedule.

This causes notification spam as people move in and out of groups.
11 months ago
Mike Lang 5c7061efd2 docker-compose: Have chat-archiver archive all watched channels 11 months ago
Mike Lang 260293d40d chat_archiver: Allow passing multiple channels on CLI 11 months ago
Mike Lang 91910c0972 chat_archiver: Fix misconfiguration where MAX_SERVER_LAG < MAX_DELAY
This leads to delayed JOIN/PARTs not being put in their proper batch
as it's already been closed. In fact, since each message is re-opening a batch from
more than MAX_SERVER_LAG seconds ago, each message becomes one batch.
11 months ago
Mike Lang 200d2df9ba chat_archiver: Add code support for archiving multiple channels at once
* Join every channel on connect
* Move the "wait for initial ROOMSTATE" logic into the main loop and make it per-channel
* Make batch keys (channel, time) instead of just time

For now the CLI doesn't actually allow you to run chat_archiver in this mode,
it always calls the implementation with a 1-element list of channels.
11 months ago
Mike Lang b050b71036 chat_archiver: Improve logging and monitoring by using unique client name more 11 months ago
Mike Lang 879fe2c70b thrimbletrimmer: Change default download type to smart
The new smart cut type avoids artifacting/playing issues that happen with fast cuts or multi-range rough cuts.

However it is new and experimental so we keep the old options available as backups.
11 months ago
Mike Lang 78d0f227e8 backfiller: Include channel name being backfilled in logs 11 months ago