Add Real-Debrid GUI downloader with parallel download and auto-update support
Some checks are pending
Build and Release / build (push) Waiting to run

This commit is contained in:
Sucukdeluxe 2026-02-26 23:09:15 +01:00
commit 2302be6621
6 changed files with 1539 additions and 0 deletions

43
.github/workflows/release.yml vendored Normal file
View File

@ -0,0 +1,43 @@
name: Build and Release
on:
push:
tags:
- "v*"
jobs:
build:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pyinstaller
- name: Build exe
run: |
pyinstaller --noconfirm --onefile --windowed --name "Real-Debrid-Downloader" real_debrid_downloader_gui.py
- name: Pack release zip
shell: pwsh
run: |
New-Item -ItemType Directory -Path release -Force | Out-Null
Copy-Item "dist/Real-Debrid-Downloader.exe" "release/Real-Debrid-Downloader.exe"
Compress-Archive -Path "release/*" -DestinationPath "Real-Debrid-Downloader-win64.zip" -Force
- name: Publish GitHub Release
uses: softprops/action-gh-release@v2
with:
files: Real-Debrid-Downloader-win64.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

15
.gitignore vendored Normal file
View File

@ -0,0 +1,15 @@
__pycache__/
*.pyc
*.pyo
*.pyd
.venv/
venv/
build/
dist/
*.spec
rd_downloader_config.json
_update_staging/
apply_update.cmd

86
README.md Normal file
View File

@ -0,0 +1,86 @@
# Real-Debrid Downloader GUI
Kleine Desktop-App mit GUI (Tkinter), um mehrere Links (z. B. 20+) einzufuegen,
ueber Real-Debrid zu unrestricten und direkt auf deinen PC zu laden.
## Features
- Mehrere Links auf einmal (ein Link pro Zeile)
- Nutzt die Real-Debrid API (`/unrestrict/link`)
- Download-Status pro Link
- Download-Speed pro Link und gesamt
- Gesamt-Fortschritt
- Download-Ordner und Paketname waehlbar
- Einstellbare Parallel-Downloads (z. B. 20 gleichzeitig)
- Automatisches Entpacken nach dem Download
- `Entpacken nach` + optional `Unterordner erstellen (Paketname)` wie bei JDownloader
- ZIP-Passwort-Check mit `serienfans.org` und `serienjunkies.net`
- Multi-Part-RAR wird ueber `part1` entpackt (nur wenn alle Parts vorhanden sind)
- Auto-Update Check ueber GitHub Releases (fuer .exe)
- Optionales lokales Speichern vom API Token
## Voraussetzung
- Python 3.10+
- Optional, aber empfohlen: 7-Zip im PATH fuer RAR/7Z-Entpackung
- Alternative fuer RAR: WinRAR `UnRAR.exe` (wird automatisch erkannt)
## Installation
```bash
python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt
```
## Start
```bash
python real_debrid_downloader_gui.py
```
## Nutzung
1. API Token von Real-Debrid eintragen (`https://real-debrid.com/apitoken`)
2. Download-Ordner waehlen
3. Optional Paketname setzen (sonst wird automatisch einer erzeugt)
4. Optional Entpack-Ordner waehlen (`Entpacken nach`)
5. Optional `Unterordner erstellen (Paketname)` aktiv lassen
6. Parallel-Wert setzen (z. B. 20)
7. Links in das Textfeld eintragen (pro Zeile ein Link)
8. `Download starten` klicken
Wenn du 20 Links einfuegst, werden sie als ein Paket behandelt. Downloads landen in einem Paketordner. Beim Entpacken kann derselbe Paketname automatisch als Unterordner genutzt werden.
## Auto-Update (GitHub)
1. Standard-Repo ist bereits gesetzt: `Sucukdeluxe/real-debrid-downloader`
2. Optional kannst du es in der App mit `GitHub Repo (owner/name)` ueberschreiben
3. Klicke `Update suchen` oder aktiviere `Beim Start auf Updates pruefen`
4. In der .exe wird ein neues Release heruntergeladen und beim Neustart installiert
Hinweis: Beim Python-Skript gibt es nur einen Release-Hinweis, kein Self-Replace.
## Release Build (.exe)
```bash
pip install pyinstaller
pyinstaller --noconfirm --onefile --windowed --name "Real-Debrid-Downloader" real_debrid_downloader_gui.py
```
Danach liegt die EXE in `dist/`.
## GitHub Release Workflow
- Workflow-Datei: `.github/workflows/release.yml`
- Bei Tag-Push wie `v1.0.1` wird automatisch eine Windows-EXE gebaut
- Release-Asset fuer Auto-Update: `Real-Debrid-Downloader-win64.zip`
Beispiel:
```bash
git tag v1.0.1
git push origin v1.0.1
```
Hinweis: Die App kann nur Links laden, die von Real-Debrid unterstuetzt werden.

6
build_exe.ps1 Normal file
View File

@ -0,0 +1,6 @@
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install pyinstaller
pyinstaller --noconfirm --onefile --windowed --name "Real-Debrid-Downloader" real_debrid_downloader_gui.py
Write-Host "Build fertig: dist/Real-Debrid-Downloader.exe"

File diff suppressed because it is too large Load Diff

2
requirements.txt Normal file
View File

@ -0,0 +1,2 @@
requests>=2.31.0
pyzipper>=0.3.6