Home

Awesome

LiveStreamDVR

Check Server Check Client Publish Docker image Docker Pulls Server version Client version

1603661434863-wc

⚠️⚠️⚠️

Until Twitch changes the max quota on Websocket Eventsubs, a public facing HTTPS server is required for this application to function.

A reverse proxy is a good way to get around this:

etc. I have only tested this with Nginx and letsencrypt.

⚠️⚠️⚠️

Features

One high-profile streamer VOD of 10 hours at 1080p60 is about 30-50GB.

Post issues/help on the issues tab above. I already run an up-to-date version, so starting fresh might break stuff.

Thanks to the contributors that helped expand the project!

ko-fi

<a href="https://jb.gg/OpenSourceSupport"> <img src="https://resources.jetbrains.com/storage/products/company/brand/logos/WebStorm.png" alt="WebStorm" height="50"> </a>

Docker setup

Reminder that I don't use docker myself on my capturing setup, so any specific errors to this are hard to test.

Docker hub

  1. Download the docker-compose.yml file and place it in a directory.
  2. Run docker-compose pull and docker-compose up -d to start it.
  3. Visit the webapp at localhost:8082
  4. Check stored vods in the /data/storage directory. Permissions might be an issue.

Hub: https://hub.docker.com/r/mrbrax/twitchautomator

The dockerhub build is preconfigured to be hosted at the root (/) and such, does not work when placed in a subdirectory.

Manual build

Run docker-compose up --build -d in the app directory. The docker-compose.yml file is required.

If you want the public webapp to have a custom base folder, you must provide BASE_URL and VITE_BASE_URL in the environment variable settings.


Standalone setup

Main requirements

pip packages

Steps

  1. Clone the repository with submodules git clone --recurse-submodules https://github.com/MrBrax/LiveStreamDVR.git (zip download doesn't include submodules, Git help
    • If anyone knows how to make an automatic zip release with all the packages using GitHub Actions, please let me know.
  2. Place the downloaded files in a folder with good permissions.
  3. Enter the root folder and run pip install -r requirements.txt
  4. Build the packages (yarn pnp is now used, so yarn install might not be required)
    • Enter the /twitch-vod-chat folder and run yarn install and yarn run buildlib.
    • Enter the /client-vue folder and run yarn install and yarn run build.
    • Enter the /server folder and run yarn install and yarn run build.
    • Enter the /twitch-chat-dumper folder and run yarn install and yarn run build.
  5. In the /server folder, run yarn run start to start the server in production mode.
  6. Go to the settings page and set up basic stuff, get api key from twitch dev site.
  7. Check the About page for subscription status.
  8. Check stored vods in the /data/storage directory. Permissions might be an issue.

Follow this guide to hackjob nginx: https://serversforhackers.com/c/nginx-php-in-subdirectory

Command line arguments

--port <number>

Specify port to run the server on.

--debug

Run the server in debug mode.

--dataroot <path>

Specify the data directory to use.

--home

Store the data in the home directory.


Environment variables

TCD_ENABLE_FILES_API=1

Enable the files api, making it possible to download and delete files in storage. This might open up filesystem exploits.

TCD_EXPOSE_LOGS_TO_PUBLIC=1

Make viewing logs in the file manager possible. Requires the above environment variable to be set.

TCD_MIGRATE_OLD_VOD_JSON=1

Migrate old vod json files to the new format. This is automatically done when the server starts. Make sure to back up your data before doing this, as it will overwrite the old files and can't be undone. Bugs might occur, so use with caution.