antiops / twitch-stream-recorder

Record twitch streams live and upload to google drive/sftp/etc using rclone

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ancalentari Twitch Stream Recorder

This script allows you to record twitch streams live to .mp4 files and automatically upload the VOD to the cloud using rclone.

It is an improved version of junian's twitch-recorder, migrated to helix - the new twitch API. It uses OAuth2.

Requirements

  1. python3.8 or higher
  2. streamlink
  3. ffmpeg
  4. rclone
  5. python-rclone

Setting up

  1. Check if you have latest version of streamlink:

    • streamlink --version shows current version
    • streamlink --version-check shows available upgrade
    • sudo pip install --upgrade streamlink do upgrade
  2. Install requests & python-rclone modules if you don't have them

    • Windows: python -m pip install -r requirements.txt
    • Linux: pip3 install -r requirements.txt
  3. Create config.py file in the same directory as twitch-recorder.py with:

root_path = "/home/abathur/Videos/twitch"
username = "forsen"
client_id = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
client_secret = "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz"

root_path - path to a folder where you want your VODs to be saved to
username - name of the streamer you want to record by default
client_id - you can grab this from here once you register your application
client_secret - you generate this here as well, for your registered application

  1. Install and create a rclone remote (rclone config) if you dont have one already then edit twitch-recorder.py and add the following:
    • The rclone config (cat $HOME/.config/rclone/rclone.conf) of whatever remote you want to push to
    • The remote path to rcloneRemotePath

Example:

rcloneConfig = """
[remote]
type = drive
scope = drive
token = {"access_token":".......".....}
"""
rcloneRemotePath = "remote:TwitchVODs/"

Running script

The script will be logging to a console and to a file twitch-recorder.log

On linux

Run the script

python3.8 twitch-recorder.py

To record a specific streamer use -u or --username

python3.8 twitch-recorder.py --username forsen

To specify quality use -q or --quality

python3.8 twitch-recorder.py --quality 720p

To change default logging use -l, --log or --logging

python3.8 twitch-recorder.py --log warn

To disable ffmpeg processing (fixing errors in recorded file) use --disable-ffmpeg

python3.8 twitch-recorder.py --disable-ffmpeg

If you want to run the script as a job in the background and be able to close the terminal:

nohup python3.8 twitch-recorder.py >/dev/null 2>&1 &

In order to kill the job, you first list them all:

jobs

The output should show something like this:

[1]+  Running                 nohup python3.8 twitch-recorder > /dev/null 2>&1 &

And now you can just kill the job:

kill %1

On Windows

You can run the scipt from cmd or terminal, by simply going to the directory where the script is located at and using command:

python twitch-recorder.py

The optional parameters should work exactly the same as on Linux.

About

Record twitch streams live and upload to google drive/sftp/etc using rclone

License:MIT License


Languages

Language:Python 100.0%