mirror of
https://github.com/aNNiMON/ffmpegbot
synced 2024-09-19 22:54:20 +03:00
Telegram ffmpeg bot for re-encoding media
.github/workflows | ||
gradle/wrapper | ||
src/main | ||
.gitignore | ||
build.gradle | ||
Dockerfile | ||
ffmpegbot-docker.yaml | ||
ffmpegbot.yaml.template | ||
gradlew | ||
gradlew.bat | ||
LICENSE | ||
pytgfile.py | ||
README.md | ||
settings.gradle |
ffmpegbot
Telegram Bot for re-encoding media
Features
- change a video resolution, bitrate, frame rate, speed
- change an audio bitrate, volume, pitch
- apply audio effects
- extract or remove audio from the video
- resend video note as a regular video, or video as an audio track
Requirements
- Telegram bot username and token, @BotFather
- JRE 17+ or JDK 17+ (for build)
ffmpeg
must be installed and available inPATH
.python3
version 3.8+ must be installed and available inPATH
.yt-dlp
for/dl
command.
Installation
Manual
# Build
./gradlew shadowJar
# Config
cp ffmpegbot.yaml.template ffmpegbot.yaml
vim ffmpegbot.yaml
mkdir {input,output}
# Run
java -jar ./build/libs/ffmpegbot-1.2-SNAPSHOT-all.jar
Using Docker
Note: FFmpeg binary might be installed with limited number of filters and codecs. Some bot features might not work (Audio pitch, robot effect, etc).
docker build --tag 'ffmpegbot' .
docker run -d -t -i \
-e BOT_TOKEN='...' \
-e BOT_USERNAME='...' \
-e APP_ID='...' \
-e APP_HASH='...' \
-e SUPERUSERS='12345' \
-e ALLOWED_USERS='12346,12347' \
--name ffmpegbot ffmpegbot:latest
Environment variables
BOT_TOKEN
— Telegram bot tokenBOT_USERNAME
— Telegram bot usernameAPP_ID
— Telegram API app_id (see https://core.telegram.org/api/obtaining_api_id)APP_HASH
— Telegram API app_hashSUPERUSERS
— Comma-separated list of superusers. Superuser can execute /run commandALLOWED_USERS
— Comma-separated list of allowed user ids