Skip to main content

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

Project description

Py-AutoVOD

MIT licensed Issues

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

  • ( :heavy_check_mark: ) Auto download livestreams (Twitch.tv, Kick.tv, Youtube Live) from multiple streamers concurrently
  • ( :heavy_check_mark: ) Audio transcription with timestamps
  • ( :heavy_check_mark: ) Auto upload to RClone, YouTube, and more
  • ( :heavy_check_mark: ) Smart AI video clipping
  • ( :heavy_check_mark: ) Youtube shorts formatting
  • ( :x: ) Archive both video and chat logs
  • ( :heavy_check_mark: ) 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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

autovod-1.1.0.tar.gz (19.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

autovod-1.1.0-py3-none-any.whl (21.8 kB view details)

Uploaded Python 3

File details

Details for the file autovod-1.1.0.tar.gz.

File metadata

  • Download URL: autovod-1.1.0.tar.gz
  • Upload date:
  • Size: 19.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.8

File hashes

Hashes for autovod-1.1.0.tar.gz
Algorithm Hash digest
SHA256 b9ce117da76b0827dde6d1a1a702856deb9ca7262a4f592acd335cdc416a2728
MD5 01ab96d0463cb2b755e79ca5082d3c9f
BLAKE2b-256 b17bbc454e3db4d869ffce5a1cd075c1ee8328d040e4d531d3ddfd2ed5811cc8

See more details on using hashes here.

File details

Details for the file autovod-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: autovod-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 21.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.8

File hashes

Hashes for autovod-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 828736effe652da2cf18a493bda98f7aca1be627521bc1cd6b91649be3aa70cb
MD5 07d2991b60d48e2fbbd3b4fac2f57e32
BLAKE2b-256 50b07fb8e9f54ed36c8a2475f0a4bb639b722c20290bc0e21c3deac2afe6f971

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page