Commit Graph

1132 Commits (mike/chat-subs)
 

Author SHA1 Message Date
Mike Lang 5a0704d3d7 Reject bustimes with negative minutes 1 year ago
ElementalAlchemist 179f06b413
Fix loading Thrimbletrimmer and defaulting initial chapter time (#361) 1 year ago
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.
1 year ago
Mike Lang 2ae273a75c bus_analyzer: Parse the final odo digit 1 year ago
Mike Lang 907d1ba6f9 Add a blank prototype which invalidates the odo if matched 1 year ago
Mike Lang 19f169e750 bus_analyzer: Move prototypes into subdir and allow non-digits 1 year ago
Mike Lang 5e43446c92 bus_analyzer: Add a testing routine to check analyzer changes 1 year 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).
1 year ago
Mike Lang 30f05b0656 thumbnails: Add a CLI for generating them directly 1 year ago
Mike Lang 720f1c4b41 thrimshim: Sanity checks for odometer 1 year ago
Mike Lang dbf9f5c8de bus_analyzer: Drop the odometer threshold so we don't reject things at night 1 year ago
Mike Lang e38d21fb61 bus analyser: add a frame extraction cli command 1 year ago
Mike Lang 06cd5d48ee More extrapolation fixes 1 year ago
Mike Lang 834dc55b41 thrimshim: Fix typo in odo extrapolation 1 year ago
Mike Lang f0e2aae519 thrimshim: Fix odometer endpoint 1 year ago
Mike Lang a83dbb58f7 thrimshim: Fix default templates 1 year ago
Mike Lang e7c402c5e2 schedulebot: Make user ids case-insensitive 1 year ago
Mike Lang b6d71297c6 bus_analyzer: Make dockerfile work 1 year 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.
1 year 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.
1 year ago
Mike Lang ce665047ac Add bus_analyzer to docker-compose 1 year ago
Mike Lang 76daceff19 bus_analyzer: initial implementation 1 year ago
Mike Lang 734a7371f3 Add bus_data DB table and have thrimshim able to query it for latest odo reading 1 year 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.
1 year 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
1 year ago
Mike Lang 3e836b935b grafana: Disable analytics 1 year 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.
1 year ago
Mike Lang 1e6b8e576e grafana: Use config file instead of env vars 1 year 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.
1 year ago
Mike Lang 304e7b0fd9 downloader: Install yt-dlp in docker container
for youtube support
1 year ago
Mike Lang 0192e5246a docker-compose: Add support for new channel format 1 year 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.
1 year 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.
1 year 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.
1 year ago
Mike Lang 7a75442243 downloader: rename twitch.py to providers.py
Since it will now contain non-twitch providers also.
1 year 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.
1 year 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
1 year ago
Mike Lang 66603bf648 docker-compose: Update some defaults
These more closely match our actual run usage
1 year ago
Mike Lang c3d5405ebc docker-compose: archive sheet support 1 year ago
Mike Lang b93597c274 sheetsync: Support archive sheet 1 year ago
Mike Lang 8d984110ab thrimshim: Special handling for "archive" events 1 year ago
Mike Lang 4d9d444cc3 cuter: local upload backends: Use _ instead of - as replacement char
This is apparently nicer to deal with in URLs.
1 year ago
Mike Lang 80c9be0baf cutter: Get archive cut working 1 year ago
Mike Lang 4c70878a53 cutter: Fix bug when no thumbnail set 1 year 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.
1 year ago
Mike Lang 5c7061efd2 docker-compose: Have chat-archiver archive all watched channels 1 year ago
Mike Lang 260293d40d chat_archiver: Allow passing multiple channels on CLI 1 year 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.
1 year 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.
1 year ago
Mike Lang b050b71036 chat_archiver: Improve logging and monitoring by using unique client name more 1 year ago