Skip to content

Latest commit

 

History

History
77 lines (57 loc) · 2.03 KB

File metadata and controls

77 lines (57 loc) · 2.03 KB

webdl

AboutFeaturesQuick Start & Information

About

Telegram bot in Java for downloading social media videos using yt-dlp

Features

  • Non-blocking message queue processing with virtual threads

  • Dynamic interaction with Telegram messages (send, delete, edit)

  • Web panel with usage statistics on port 8080

  • Automatic retry on download failures

Quick Start & Information

Webdl accepts a video URL, downloads it using yt-dlp, and sends it back to the user as a video message.

From source

git clone https://github.com/SegoCode/webdl
cd webdl/code
mvn clean package -DskipTests
java -jar target/webdl.jar

Docker

cd webdl/code
mvn clean package -DskipTests
docker build -t webdl-image .
docker run -d \
  --name webdl \
  --restart unless-stopped \
  -e BOT_TOKEN=your-bot-token \
  -p 8080:8080 \
  -v /mnt/drive/data/webdl:/downloads \
  webdl-image

Project structure

code/src/main/java/org/segocode/webdl/
├── Main.java                          # Entry point
├── bot/
│   ├── Webdlbot.java                  # Telegram long-polling bot
│   ├── constants/Messages.java        # User-facing message strings
│   ├── model/{User,DataRootContainer}.java  # EclipseStore persistence
│   ├── service/{MessageService,VideoService}.java
│   └── util/MessageUtil.java
├── panel/
│   ├── PanelApplication.java          # Javalin web server bootstrap
│   └── AdminController.java           # Admin panel route handler
└── system/
    ├── command/CommandExecutor.java   # yt-dlp subprocess with retry
    └── util/FileUtil.java