https://github.com/annimon/effybot
Telegram ffmpeg bot for re-encoding media
https://github.com/annimon/effybot
ffmpeg telegram telegram-bot yt-dlp
Last synced: 4 months ago
JSON representation
Telegram ffmpeg bot for re-encoding media
- Host: GitHub
- URL: https://github.com/annimon/effybot
- Owner: aNNiMON
- License: mit
- Created: 2023-01-10T15:05:41.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2025-08-30T15:45:49.000Z (10 months ago)
- Last Synced: 2025-08-30T17:37:41.919Z (10 months ago)
- Topics: ffmpeg, telegram, telegram-bot, yt-dlp
- Language: Java
- Homepage:
- Size: 232 KB
- Stars: 9
- Watchers: 2
- Forks: 16
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# effybot (formerly 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](https://t.me/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
```bash
# Build
./gradlew shadowJar
# Config
cp effybot.yaml.template effybot.yaml
vim effybot.yaml
mkdir {input,output}
# Run
java -jar ./build/libs/effybot-1.3-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.).
```bash
docker run -d -t -i \
-e BOT_TOKEN='...' \
-e APP_ID='...' \
-e APP_HASH='...' \
-e SUPERUSERS='12345' \
-e ALLOWED_USERS='12346,12347' \
--name effybot ghcr.io/annimon/effybot: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
## TUI version
Terminal UI alternative: [effy](https://github.com/aNNiMON/effy)