1
0
mirror of https://github.com/aNNiMON/ffmpegbot synced 2024-09-19 11:54:19 +03:00
Telegram ffmpeg bot for re-encoding media
Go to file
2024-09-15 23:32:34 +03:00
.github/workflows Add CI 2024-02-20 22:59:58 +02:00
gradle/wrapper Upgrade dependencies 2023-10-18 22:04:07 +03:00
src/main Show audio spectrum output for audio and voices 2024-09-15 23:32:34 +03:00
.gitignore Support for 20+ MiB files download by calling external Telegram Client file downloader 2023-01-20 23:28:09 +02:00
build.gradle Bump tgbots module 2024-09-15 18:33:05 +03:00
Dockerfile Reduce a docker image file size 2024-09-04 19:57:19 +03:00
ffmpegbot-docker.yaml Change config to use comma-separated string for providing user ids via environment variable 2024-09-03 21:27:51 +03:00
ffmpegbot.yaml.template Resolve bot username automatically 2024-09-04 19:33:55 +03:00
gradlew Initial commit 2023-01-10 16:55:02 +02:00
gradlew.bat Initial commit 2023-01-10 16:55:02 +02:00
LICENSE Add readme and license files 2023-01-10 17:21:10 +02:00
pytgfile.py Fix python dependencies in Dockerfile, use ENV 2023-05-22 22:26:22 +03:00
README.md Add audio compressor 2024-09-15 23:19:58 +03:00
settings.gradle Initial commit 2023-01-10 16:55:02 +02:00

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, compressor
  • extract or remove audio from the video
  • resend video note as a regular video, or video as an audio track
  • output audio spectrum for quick analysis

Requirements

  • Telegram bot username and token, @BotFather
  • JRE 17+ or JDK 17+ (for build)
  • ffmpeg must be installed and available in PATH.
  • python3 version 3.8+ must be installed and available in PATH.
  • 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 run -d -t -i \
  -e BOT_TOKEN='...' \
  -e APP_ID='...' \
  -e APP_HASH='...' \
  -e SUPERUSERS='12345' \
  -e ALLOWED_USERS='12346,12347' \
  --name ffmpegbot ghcr.io/annimon/ffmpegbot:latest

Environment variables

  • BOT_TOKEN — Telegram bot token
  • APP_ID — Telegram API app_id (see https://core.telegram.org/api/obtaining_api_id)
  • APP_HASH — Telegram API app_hash
  • SUPERUSERS — Comma-separated list of superusers. Superuser can execute /run command
  • ALLOWED_USERS — Comma-separated list of allowed user ids