Skip to content

Automatically download livestreams, clip with AI, and upload in realtime

License

Notifications You must be signed in to change notification settings

0jc1/py-autovod

Repository files navigation

Py-AutoVOD

MIT licensed Docker Issues Last Commit Stars

Py-AutoVOD is a Python3 program that automates the downloading and uploading of livestreams from multiple streaming services. It has many configurable features for stream VODs, such as formatting, transcribing, and AI-powered clipping. This project was originally based on AutoVOD.

Features

  • ( ✔️ ) Auto download livestreams (Twitch.tv, Kick.tv, Youtube Live) from multiple streamers concurrently
  • ( ✔️ ) Audio transcription with timestamps
  • ( ✔️ ) Auto upload to RClone, YouTube, and more
  • ( ✔️ ) Smart AI video clipping
  • ( ✔️ ) Youtube shorts formatting
  • ( ❌ ) Archive both video and chat logs
  • ( ✔️ ) Platform independent and Docker supported

Installation & Setup

  1. Manually install ffmpeg and streamlink. Alternatively, you can do the installation automatically with install.sh.

  2. Python 3.10+ is required. Set up a Python virtual environment, then install the required packages:

    python -m venv env
    . env/bin/activate
    pip install -r requirements.txt
  3. Install from source using pip.

    pip install -e .
  4. Configure the streamers you want to monitor in config.ini:

    [streamers]
    streamers = streamer1, streamer2, streamer3
  5. Create a configuration file for each streamer where the file name is the streamer's username. The default configuration file default.ini will be used otherwise.

  6. Configure the main configuration file config.ini. Downloaded VODs are processed into clips by default.

  7. Copy the .env.example file to a new file called .env. Fill in the .env file with your API keys.

  8. Run the command to start AutoVOD:

    autovod

Uploading

Auto uploading for YouTube works with youtubeuploader, but it requires additional setup and configuration.

Clip Generation

You can generate clips from a video file directly using a script.

Download an example video file from YouTube:

python src/download_yt.py https://www.youtube.com/watch?v=dQw4w9WgXcQ

Run this command with the path to the video:

python3 src/process_vid.py <path/to/video>

Shorts Format

With ffmpeg you can convert mp4 into Youtube shorts format (9:16 aspect ratio):

ffmpeg -i input.mp4 -vf "crop=ih*9/16:ih,scale=1080:1920" -c:a copy output.mp4

Add background music:

ffmpeg -i input.mp4 -i music.mp3 -filter_complex "[0:v]scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2[v];[1:a]volume=0.3[a1];[0:a][a1]amix=inputs=2[a]" -map "[v]" -map "[a]" -shortest output.mp4

Transcription

Audio transcription is done with OpenAI's Whisper ASR. This feature can be configured in config.ini

Contribution

Contributors are welcome! Please feel free to submit a PR or issue.

Sponsor this project

 

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •