Skip to content

Latest commit

Β 

History

15 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🎬 Siphon - JDownloader 2 Telegram Bot

English Β  β€’ Β  Χ’Χ‘Χ¨Χ™Χͺ

Version Python Telegram JDownloader

Smart Telegram bot for video downloading via JDownloader 2 with automatic upload to Telegram


✨ Key Features

Feature Description
πŸ”— JDownloader 2 Integration Full control over JD2 via My.JDownloader API
πŸš€ Regular & Deep Scanning Deep-Decrypt for extracting hidden links
πŸ“Š Progress Dashboard Real-time tracking with animated moon progress bar
πŸ“€ Automatic Upload Direct upload to Telegram with streaming support
πŸ”ͺ Large File Splitting Automatic splitting for files over 2GB
πŸ”„ MP4 Conversion Automatic conversion to streaming-compatible format
πŸ–ΌοΈ Photo Album Support Send photos as albums (up to 10 at a time)
πŸ”’ User Permissions Admins and authorized users only

πŸ› οΈ System Requirements

  • Python 3.8+
  • JDownloader 2 with a My.JDownloader account
  • FFmpeg installed and accessible in PATH
  • Telegram API account

πŸš€ Installation

1. Clone the project

git clone https://github.com/your-username/siphon.git
cd siphon

2. Create a virtual environment

python -m venv venv
venv\Scripts\activate  # Windows
# or
source venv/bin/activate  # Linux/Mac

3. Install dependencies

pip install -r requirements.txt

4. Configure the .env file

Create a .env file in the root directory:

# Telegram
BOT_TOKEN=your_bot_token
API_ID=your_api_id
API_HASH=your_api_hash
ADMIN_IDS=123456789
USER_IDS=111111111,222222222

# JDownloader 2
JD_EMAIL=your_myjdownloader_email
JD_PASSWORD=your_myjdownloader_password
JD_DEVICE_NAME=your_device_name
JD_DOWNLOAD_DIR=C:\Users\you\Downloads\JD

🐧 Optional: Linux Server Deployment (Background Service)

To run the bot in the background continuously on a Linux server and ensure it restarts automatically if the server reboots, you can set it up as a systemd service.

  1. Install FFmpeg (if not already installed):

    sudo apt update
    sudo apt install ffmpeg
  2. Create a systemd service file:

    sudo nano /etc/systemd/system/siphon-bot.service
  3. Paste the following configuration (modify the paths and user accordingly):

    [Unit]
    Description=Siphon JD2 Telegram Bot
    After=network.target
    
    [Service]
    Type=simple
    User=your_linux_user
    WorkingDirectory=/path/to/siphon
    ExecStart=/path/to/siphon/venv/bin/python bot.py
    Restart=always
    RestartSec=10
    
    [Install]
    WantedBy=multi-user.target
  4. Enable and start the service:

    sudo systemctl daemon-reload
    sudo systemctl enable siphon-bot
    sudo systemctl start siphon-bot
  5. View logs:

    sudo journalctl -u siphon-bot -f

βš™οΈ JDownloader 2 Setup

  1. Download and install JDownloader 2
  2. Create an account at My.JDownloader
  3. Connect in JD2: Settings β†’ My.JDownloader
  4. Note the Device Name - this is what you'll enter in JD_DEVICE_NAME

πŸ€– Usage

Running the bot (Windows / Local)

python bot.py

Or:

run_bot.bat

Available Commands

Command Description
/start Start and display welcome message

Workflow

graph LR
    A[πŸ“Ž Send Link] --> B{Choose Scan Type}
    B -->|πŸš€ Regular| C[Quick Scan]
    B -->|πŸ•·οΈ Deep| D[Deep-Decrypt]
    C --> E[πŸ“‹ Select Files]
    D --> E
    E --> F[⬇️ Download in JD2]
    F --> G[πŸ“€ Upload to Telegram]
Loading
  1. Send a link β†’ Bot detects automatically
  2. Choose scan type β†’ Regular (fast) or Deep (comprehensive)
  3. Select files β†’ Interactive interface with Toggle
  4. Click Download β†’ JD2 downloads, bot uploads to Telegram

πŸ“ Project Structure

Siphon/
β”œβ”€β”€ πŸ“„ bot.py           # Main bot + Telegram interface
β”œβ”€β”€ πŸ“„ jd_client.py     # JDownloader API wrapper
β”œβ”€β”€ πŸ“„ utils.py         # Helper functions (FFmpeg, formats)
β”œβ”€β”€ πŸ“„ requirements.txt # Python dependencies
β”œβ”€β”€ πŸ“„ run_bot.bat      # Run script (Windows)
β”œβ”€β”€ πŸ“„ .env             # Environment settings (not in Git)
└── πŸ“„ README.md        # You are here! πŸ‘‹

🎨 Interface Features

πŸŒ™ Moon Progress Bar

πŸŒ•πŸŒ•πŸŒ•πŸŒ•πŸŒ–πŸŒ‘πŸŒ‘πŸŒ‘πŸŒ‘πŸŒ‘ 45%

πŸ“Š Download Dashboard

πŸ“₯ Downloading... (Total)
━━━━━━━━━━━━━━━━━━
πŸŒ•πŸŒ•πŸŒ•πŸŒ•πŸŒ–πŸŒ‘πŸŒ‘πŸŒ‘πŸŒ‘πŸŒ‘ 45.2%
πŸ“Š 4.0GB/8.9GB
πŸ“₯ Current file: video_file.mp4
⚑ Speed: 15.3MB/s
⏱️ ETA: 05:23
πŸ—‚ Files: 2/5
━━━━━━━━━━━━━━━━━━

πŸ“¦ Dependencies

Package Description
pyrogram Telegram Client API
myjdapi JDownloader 2 API
ffmpeg-python FFmpeg wrapper
python-dotenv Environment variables loader

⚠️ Important Notes

Important

JDownloader 2 must be running in the background for the bot to work!

Tip

Use Deep scanning for sites with protections or hidden links.

Note

Files over 2GB will be automatically split into parts.


πŸ“œ License

MIT License - See LICENSE for details.


Made with ❀️ by Omer

About

🎬 Telegram bot for video downloading via JDownloader 2 with auto-upload, large file splitting, and MP4 conversion

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages