Ein Bash-basiertes CLI-Tool zum Streamen von Animes von AniWorld.to mit deutschen Synchronisationen und Untertiteln.
Inspiriert von ani-cli, aber speziell für deutsche Anime-Inhalte optimiert.
- 🎯 Interaktiver Modus: Starte
aniworld-cliohne Argument für interaktive Suche - 🔍 Anime-Suche: Suche nach Anime-Titeln auf AniWorld.to (AJAX API)
- 📺 Vollbild-fzf: Nutzt das komplette Terminal-Fenster für bessere Übersicht
- 📜 Watch History: Speichere deinen Fortschritt und setze dort fort, wo du aufgehört hast
- 🎬 Continue-Menü: Elegantes fzf-Menü statt Y/n-Abfrage
- 🎮 Post-Episode-Menü: Wähle nach jeder Episode: next, replay, previous, select, hoster, quit
- 🌐 Intelligente Auswahl: Automatisch beste Sprache (GerDub), Qualität (1080p) und Hoster (Filemoon)
- 🔄 Manuelle Hoster-Wechsel: Wechsle zwischen Streaming-Anbietern während der Wiedergabe
- 🎥 mpv/vlc Integration: Nahtlose Video-Player-Integration mit yt-dlp Support
- 🚀 Binge-Watch-Modus: Fließend durch Episoden navigieren
- 🎨 Clean UI: Keine Console-Spam, nur fzf-Menüs und minimale Loading-Nachrichten
- 💻 Cross-Platform: Linux, macOS und Windows (via Git Bash)
Folgende Tools müssen installiert sein:
curl- Für HTTP-Requestsgrep- Text-Verarbeitungsed- Text-Verarbeitungfzf- Interaktive Auswahlmpvodervlc- Video-Playeryt-dlpoderyoutube-dl- Empfohlen für Video-URL-Extraktionnode(Node.js) - Erforderlich für Filemoon-Hoster-Unterstützungjq- Optional für besseres JSON-Parsing
Wichtig: Node.js wird für den Filemoon-Hoster benötigt, da dieser seine Video-URLs mit obfusziertem JavaScript verschleiert. Ohne Node.js funktioniert Filemoon nicht.
Ubuntu/Debian:
sudo apt install curl grep sed fzf mpv yt-dlp nodejs jqArch Linux:
sudo pacman -S curl grep sed fzf mpv yt-dlp nodejs jqFedora:
sudo dnf install curl grep sed fzf mpv yt-dlp nodejs jqmacOS:
brew install curl grep gnu-sed fzf mpv yt-dlp node jqWindows:
# In Git Bash (siehe Windows Installation Sektion)
scoop install fzf mpv yt-dlp nodejs aria2 jqaniworld-cli kann über verschiedene Package Manager installiert werden.
→ Für detaillierte Installationsanleitungen siehe INSTALLATION.md
# Mit yay
yay -S aniworld-cli
# Oder development version
yay -S aniworld-cli-git# Füge das aniworld-cli bucket hinzu
scoop bucket add aniworld https://github.com/dxmoc/aniworld-cli.git
# Installiere aniworld-cli
scoop install aniworld/aniworld-cli# Füge das Tap hinzu
brew tap dxmoc/aniworld-cli https://github.com/dxmoc/aniworld-cli.git
# Installiere aniworld-cli
brew install aniworld-cli# Repository clonen
git clone https://github.com/dxmoc/aniworld-cli.git
cd aniworld-cli
# Install-Script ausführen
chmod +x install.sh
sudo ./install.shDas Install-Script wird:
- ✓ Automatisch dein Betriebssystem erkennen (Ubuntu, Arch, Fedora, Alpine, Void, Gentoo, Solus, NixOS, macOS)
- ✓ Fehlende Dependencies installieren
- ✓ aniworld-cli system-weit verfügbar machen
- ✓ Data-Verzeichnis einrichten
Windows-Nutzer: Siehe Windows Installation weiter unten.
Falls du das Install-Script nicht verwenden möchtest:
- Dependencies installieren:
# Ubuntu/Debian
sudo apt install curl grep sed fzf mpv yt-dlp nodejs jq
# Arch Linux
sudo pacman -S curl grep sed fzf mpv yt-dlp nodejs jq
# Fedora
sudo dnf install curl grep sed fzf mpv yt-dlp nodejs jq- Symlink erstellen:
sudo ln -s "$(pwd)/aniworld-cli" /usr/local/bin/aniworld-clianiworld-cli funktioniert auf Windows über Git Bash in Windows Terminal. PowerShell/CMD werden nicht unterstützt.
1. Scoop Package Manager installieren
Öffne PowerShell und folge der Anleitung auf scoop.sh:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
Invoke-RestMethod -Uri https://get.scoop.sh | Invoke-Expression2. Windows Terminal installieren (falls nicht vorhanden)
Windows 11: Bereits vorinstalliert Windows 10:
scoop bucket add extras
scoop install extras/windows-terminal3. Git Bash installieren und konfigurieren
scoop install gitGit Bash als Windows Terminal Profil einrichten:
- Öffne Windows Terminal
- Klicke auf das Dropdown-Menü (▼) → Einstellungen
- Profile → Neues Profil hinzufügen → Neues leeres Profil
- Befehlszeile:
C:\Program Files\Git\bin\bash.exe -i -l - Startverzeichnis:
%USERPROFILE% - Name: Git Bash
- Speichern und Windows Terminal neu starten
Öffne das Git Bash Profil in Windows Terminal:
1. Dependencies installieren:
scoop bucket add extras
scoop install fzf mpv yt-dlp nodejs aria2 jq2. aniworld-cli installieren:
# Repository clonen
cd ~
git clone https://github.com/dxmoc/aniworld-cli.git
cd aniworld-cli
# Zum PATH hinzufügen (in ~/.bashrc)
echo "export PATH=\"\$HOME/aniworld-cli:\$PATH\"" >> ~/.bashrc
source ~/.bashrc
# Executable machen
chmod +x aniworld-cli3. Testen:
aniworld-cli --version- ✅ Verwende nur Git Bash (keine PowerShell/CMD)
- ✅ Windows Terminal wird empfohlen (bessere Unicode-Unterstützung)
- ✅ mpv öffnet Videos in einem separaten Fenster
⚠️ Falls fzf nicht reagiert: Stelle sicher, dass du Git Bash verwendest (nicht mintty)
Problem: "fzf: command not found"
scoop install fzfProblem: "mpv: command not found"
scoop install mpvProblem: Videos starten nicht
- Stelle sicher, dass yt-dlp installiert ist:
scoop install yt-dlp - Prüfe mpv Installation:
mpv --version - Für Filemoon-Hoster: Node.js installieren:
scoop install nodejs
Problem: Encoding-Fehler bei deutschen Umlauten
# In ~/.bashrc hinzufügen:
export LANG=de_DE.UTF-8
export LC_ALL=de_DE.UTF-8Problem: "Keine Hoster gefunden"
Wenn du diesen Fehler siehst, wurde die Hoster-Extraktion verbessert für Windows-Kompatibilität:
-
Mit Debug-Modus starten:
aniworld-cli --debug "Anime Name" -
HTML-Datei prüfen: Die Debug-Datei wird gespeichert unter:
~/.local/share/aniworld-cli/debug_episode.html -
GitHub Issue öffnen: Falls das Problem weiterhin besteht, öffne ein Issue auf GitHub mit:
- Deinem Betriebssystem (Windows/macOS/Linux)
- Der debug_episode.html Datei
- Der genauen Fehlermeldung
Windows-spezifisch: Das Tool wurde für Windows Git Bash optimiert. Alle grep -oP Befehle wurden durch POSIX-kompatible sed Alternativen ersetzt.
Starte aniworld-cli ohne Argument für den interaktiven Modus:
aniworld-cliDu wirst dann gefragt:
INFO: Checking dependencies...
Search anime: [hier tippen]
Nach der Suche öffnet sich ein fzf-Vollbild-Menü mit allen Ergebnissen. Du kannst:
- 🔼🔽 Mit Pfeiltasten navigieren
- ⌨️ Tippen um Ergebnisse zu filtern
- ⏎ Enter drücken um auszuwählen
Suche direkt mit einem Argument:
aniworld-cli "One Piece"Setze den zuletzt geschauten Anime fort:
aniworld-cli --continue
# oder
aniworld-cli -cNach jeder Episode erscheint automatisch ein fzf-Menü:
> next - Nächste Episode
replay - Episode wiederholen
previous - Vorherige Episode
select - Andere Episode wählen
hoster - Hoster/Qualität wechseln
quit - Beenden
Das Menü zeigt auch den aktuellen Hoster an:
Cowboy Bebop | S1E5/26 | Hoster: Streamtape
Bei Problemen (z.B. "Keine Hoster gefunden") starte mit Debug-Modus:
aniworld-cli --debug "Anime Name"
# oder
aniworld-cli -d "Anime Name"Der Debug-Modus:
- Zeigt detaillierte Shell-Ausgaben
- Speichert HTML-Dateien in
~/.local/share/aniworld-cli/debug_episode.html - Gibt Hoster-Extraktions-Details aus
aniworld-cli wählt automatisch den besten verfügbaren Stream basierend auf dieser intelligenten Priorisierung:
- GerDub (Deutsche Synchronisation) - Wird IMMER bevorzugt
- GerSub (Deutsche Untertitel)
- EngSub (Englische Untertitel)
- 1080p - Beste Qualität
- 720p - High Definition
- 480p - Standard Definition
- HD - Allgemeine HD-Kennzeichnung
- Filemoon - Zuverlässig, benötigt Node.js
- Streamtape - Gute Stabilität
- Vidmoly - Solide Alternative
- Doodstream - Fallback-Option
- VOE - Letzte Alternative
Beispiel: GerDub 480p wird automatisch über EngSub 1080p gewählt, da deutsche Synchronisation höchste Priorität hat.
Optimierungen:
- 150MB Cache für unterbrechungsfreies Streaming
- 30 Sekunden Readahead verhindert Buffering
- 10 Sekunden Initial-Puffer für sofortigen Start
- HLS max bitrate erzwingt beste Qualität
Du kannst jederzeit während der Wiedergabe den Hoster wechseln:
- Wähle "hoster" im Post-Episode-Menü
- Dir werden alle verfügbaren Hoster für die aktuelle Episode angezeigt
- Wähle einen Hoster aus der Liste
- Das Video wird mit dem neuen Hoster geladen und abgespielt
- Das Menü bleibt sichtbar und zeigt den neuen Hoster an
Anwendungsfälle:
- Ein Hoster lädt zu langsam → Wechsle zu einem anderen
- Video-Qualität ist schlecht → Probiere einen anderen Hoster
- Hoster ist offline → Wähle eine funktionierende Alternative
Der aktuelle Hoster wird immer im Menü-Prompt angezeigt:
One Piece | S1E42/61 | Hoster: Streamtape
aniworld-cli --helpaniworld-cli --versionUm aniworld-cli zu deinstallieren:
cd aniworld-cli
sudo ./uninstall.shDas Uninstall-Script wird:
- ✓ Symlink aus /usr/local/bin entfernen
- ✓ Optional: Watch-History und Config löschen (du wirst gefragt)
- Start:
aniworld-cli(ohne Argument für interaktiven Modus) - Suche: Gib einen Anime-Titel ein (z.B. "One Piece")
- Auswahl: Wähle aus den Suchergebnissen mit fzf-Vollbild (zeigt Episodenanzahl)
- History-Check: Falls vorhanden, fzf-Menü zum Fortsetzen oder Neustart
- Staffel wählen: Wähle die gewünschte Staffel (fzf-Vollbild)
- Episode wählen: Wähle die gewünschte Episode (fzf-Vollbild)
- Hoster-Auswahl: Automatische Auswahl des besten Hosters (Streamtape > Vidmoly > Doodstream > VOE)
- Streaming: Video wird in mpv/vlc abgespielt (im Hintergrund, Menü bleibt sichtbar)
- Post-Episode-Menü: Wähle zwischen next, replay, previous, select, hoster oder quit
- hoster: Wechsle zu einem anderen Streaming-Anbieter für bessere Qualität/Geschwindigkeit
- Loop: Zurück zu Schritt 8 für nahtloses Binge-Watching
aniworld-cli/
├── aniworld-cli # Haupt-Executable
├── lib/
│ ├── scraper.sh # Web-Scraping-Funktionen (AJAX API, Hoster-Extraktion)
│ ├── player.sh # Video-Player-Integration (mpv/vlc)
│ ├── history.sh # Watch-History-Management
│ ├── ui.sh # UI/UX-Funktionen (fzf-Vollbild-Menüs)
│ └── extract_filemoon.js # Filemoon Video-URL Dekoder (Node.js)
├── install.sh # Installations-Script
├── uninstall.sh # Deinstallations-Script
├── LICENSE # MIT License
└── README.md # Diese Datei
~/.local/share/aniworld-cli/ # Data-Verzeichnis (XDG-konform)
├── history.txt # Watch-History (auto-generiert)
└── config # Konfiguration (auto-generiert)
Die Konfigurationsdatei wird automatisch unter ~/.local/share/aniworld-cli/config erstellt.
Standardmäßig wird mpv bevorzugt, falls verfügbar. Du kannst die Präferenz manuell ändern:
echo "player=vlc" > ~/.local/share/aniworld-cli/configDie Watch History wird in ~/.local/share/aniworld-cli/history.txt gespeichert.
Format: slug|season|episode|timestamp
Beispiel:
one-piece|1|42|2025-12-30T12:34:56+01:00
naruto|2|15|2025-12-30T14:20:00+01:00
- Überprüfe deine Internetverbindung
- Versuche einen anderen Suchbegriff
- AniWorld.to könnte offline sein
- Der gewählte Hoster ist möglicherweise offline
- Versuche einen anderen Hoster manuell auszuwählen
- Manche Hoster benötigen spezielle Parsing-Logik
- Filemoon-Hoster: Stelle sicher, dass Node.js installiert ist (
node --version)- Ubuntu/Debian:
sudo apt install nodejs - Arch:
sudo pacman -S nodejs - macOS:
brew install node - Windows:
scoop install nodejs
- Ubuntu/Debian:
- Stelle sicher, dass
mpvodervlcinstalliert ist - Überprüfe mit:
which mpvoderwhich vlc
Falls AniWorld.to Cloudflare-Schutz hat:
- Das Skript setzt bereits User-Agent-Header
- Versuche es nach einigen Minuten erneut
- Zu viele Requests können zu temporären Blockierungen führen
Dieses Tool greift auf Inhalte von AniWorld.to zu. Die Legalität des Streamens von Inhalten auf dieser Plattform liegt in einer Grauzone. Nutze dieses Tool auf eigene Verantwortung.
Empfehlung: Unterstütze offizielle Streaming-Dienste wie Crunchyroll, Wakanim oder Netflix für legalen Anime-Konsum.
- Keine Download-Funktion (nur Streaming)
- Hoster-Verfügbarkeit kann variieren
- Manche Hoster haben Anti-Scraping-Maßnahmen
- Video-Qualität ist vom Hoster abhängig (nutze die Hoster-Auswahl um bessere Qualität zu finden)
Beiträge sind willkommen! So kannst du helfen:
- Fork das Repository
- Erstelle einen Feature Branch (
git checkout -b feature/AmazingFeature) - Committe deine Änderungen (
git commit -m 'Add AmazingFeature') - Push zum Branch (
git push origin feature/AmazingFeature) - Öffne einen Pull Request
Wenn du einen Bug findest, öffne bitte ein Issue mit:
- Beschreibung des Problems
- Schritte zur Reproduktion
- Erwartetes vs. tatsächliches Verhalten
- System-Info (OS, Dependencies-Versionen)
Feature-Ideen sind willkommen! Öffne ein Issue mit:
- Beschreibung des Features
- Use Case / Warum ist es nützlich?
- Optionale Implementierungs-Ideen
MIT License - siehe LICENSE Datei für Details
Das bedeutet: Du kannst das Tool frei verwenden, modifizieren und verteilen.