|
|
|
@ -7,20 +7,34 @@ as part of [Desert Bus For Hope](https://desertbus.org).
|
|
|
|
|
A full design doc can be read at [initial-design-doc.pdf](./initial-design-doc.pdf),
|
|
|
|
|
but a brief overview of the components:
|
|
|
|
|
|
|
|
|
|
#### Shared Components
|
|
|
|
|
|
|
|
|
|
* `common` provides code shared between the other components.
|
|
|
|
|
|
|
|
|
|
#### Ingest
|
|
|
|
|
* `downloader` grabs segments from twitch and saves them to disk
|
|
|
|
|
* `restreamer` serves segments from disk as well as playlist files allowing them to be streamed
|
|
|
|
|
* `backfiller` queries restreamers of other servers in order to pick up segments this server doesn't have already,
|
|
|
|
|
ie. it replicates missing segments.
|
|
|
|
|
* `cutter` interacts with a database to perform cutting jobs
|
|
|
|
|
* `chat_archiver` records twitch chat messages and merges them with records from other nodes.
|
|
|
|
|
|
|
|
|
|
#### Processing
|
|
|
|
|
* `sheetsync` syncs specifc database columns to a google doc which is the primary operator interface.
|
|
|
|
|
* `cutter` interacts with a database to perform cutting jobs
|
|
|
|
|
* `thrimshim` acts as an interface between the `thrimbletrimmer` editor and the database.
|
|
|
|
|
* `thrimbletrimmer` is a browser based video editor.
|
|
|
|
|
* `segment_coverage` regularly checks whether there is complete segment coverage for each hour.
|
|
|
|
|
* `playlist_manager` adds videos to youtube playlists depending on tags.
|
|
|
|
|
* `chat_archiver` records twitch chat messages and merges them with records from other nodes.
|
|
|
|
|
* `database` hosts a Postgres database to store events to be edited.
|
|
|
|
|
|
|
|
|
|
#### Analysis
|
|
|
|
|
* `bus_analyzer` does OCR on the stream to produce timestamps of/for progress through the route.
|
|
|
|
|
* `buscribe` is back-end audio speech-to-text extraction.
|
|
|
|
|
* `buscribe_api` is the API provided for below to access the stored results of transcription.
|
|
|
|
|
* `buscribe-web` is the web frontend to interface with `buscribe`'s output (via `buscribe_api`)
|
|
|
|
|
|
|
|
|
|
#### Services
|
|
|
|
|
* `postgres` hosts a Postgres database to store events to be edited.
|
|
|
|
|
* `nginx` provides a webserver through which the other components are exposed to the outside world.
|
|
|
|
|
* `common` provides code shared between the other components.
|
|
|
|
|
* `monitoring` provides dashboards to allow the wubloader to be monitored.
|
|
|
|
|
|
|
|
|
|
### Usage
|
|
|
|
|