Automatically download livestreams, clip with AI, and upload in realtime
Project description
Py-AutoVOD
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
-
Manually install ffmpeg and streamlink. Alternatively, you can do the installation automatically with
install.sh. -
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
-
Install from source using pip.
pip install -e .
-
Configure the streamers you want to monitor in
config.ini:[streamers] streamers = streamer1, streamer2, streamer3
-
Create a configuration file for each streamer where the file name is the streamer's username. The default configuration file
default.iniwill be used otherwise. -
Configure the main configuration file
config.ini. Downloaded VODs are processed into clips by default. -
Copy the
.env.examplefile to a new file called.env. Fill in the .env file with your API keys. -
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b9ce117da76b0827dde6d1a1a702856deb9ca7262a4f592acd335cdc416a2728
|
|
| MD5 |
01ab96d0463cb2b755e79ca5082d3c9f
|
|
| BLAKE2b-256 |
b17bbc454e3db4d869ffce5a1cd075c1ee8328d040e4d531d3ddfd2ed5811cc8
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
828736effe652da2cf18a493bda98f7aca1be627521bc1cd6b91649be3aa70cb
|
|
| MD5 |
07d2991b60d48e2fbbd3b4fac2f57e32
|
|
| BLAKE2b-256 |
50b07fb8e9f54ed36c8a2475f0a4bb639b722c20290bc0e21c3deac2afe6f971
|