CineCLI: Filmsuche und Torrent-Start direkt im Terminal
(github.com/eyeblech)- CineCLI ist ein plattformübergreifendes CLI-Tool, mit dem sich in einer Terminal-Umgebung Filminformationen suchen und Torrents direkt starten lassen
- Es lädt Filmdaten über die YTS API und wählt automatisch die beste Qualität und gesunde Seeds aus
- Es basiert auf Python 3.11+ und bietet mit Typer und Rich eine intuitive Oberfläche
- In Nix/NixOS-Umgebungen kann es ohne separate Installation ausgeführt werden und übergibt Magnet-Links an den Standard-Torrent-Client des OS
- Es unterstützt von einfacher befehlsbasierter Suche bis zum interaktiven Modus alles und ist damit sowohl für Entwickler als auch für Filmfans nützlich
Überblick über CineCLI
- CineCLI ist eine schnelle und minimalistische CLI-Anwendung, mit der sich Film-Torrents im Terminal durchsuchen, prüfen und starten lassen
- Läuft unter Linux, macOS und Windows
- Bietet eine auf
richbasierende visuell aufgeräumte Terminal-UI
- Es verwendet die YTS API, um nach Filminformationen zu suchen, und zeigt die Ergebnisse in Form von ID, Titel, Jahr und Bewertung an
- Nutzer können eine Film-ID auswählen, um Details anzusehen, und anschließend den gewünschten Torrent wählen oder die automatische Auswahl nutzen
Hauptfunktionen
- Filmsuche: Suche nach Filmen auf YTS mit dem Befehl
cinecli search <Titel> - Details anzeigen: Anzeige der Detailinformationen zum ausgewählten Film und der verfügbaren Torrents
- Automatische Torrent-Auswahl: Automatische Auswahl anhand bester Qualität und gesunder Seeds
- Torrent starten: Übergibt Magnet-Links an den im OS registrierten Standard-Client (
qBittorrent,Transmissionusw.) - Bietet eine Option zum Herunterladen von .torrent-Dateien
- Unterstützt einen interaktiven Modus (interactive), in dem Suche → Auswahl → Download schrittweise durchgeführt werden
Installation und Ausführung
- Installation per pip:
pip install cinecli- Python 3.11 oder neuer erforderlich
- Unterstützung für Nix/NixOS:
- Kann flake-basiert ohne Installation von Python oder pip ausgeführt werden
- Sofortiger Start mit dem Befehl
nix run github:eyeblech/cinecli - Kann mit
nix profile add github:eyeblech/cineclizum Profil hinzugefügt werden
- Installation aus dem Quellcode (für Entwickler):
git clone https://github.com/eyeblech/cinecli.git cd cinecli pip install -e .
Anwendungsbeispiele
- Suchbeispiel
Beispielausgabe:cinecli search matrixID Title Year Rating 3525 The Matrix 1999 8.7 3526 The Matrix Reloaded 2003 7.2 - Befehl zum Anschauen eines Films
cinecli watch 3525- Zeigt Filmdetails an
- Gibt eine Liste verfügbarer Torrents aus
- Startet nach automatischer oder manueller Auswahl einen Magnet-Link oder lädt eine
.torrent-Datei herunter
Tech-Stack
- Python-basiert
- Typer: CLI-Framework
- Rich: Aufbau der Terminal-UI
- Requests: API-Kommunikation
- YTS API: Datenquelle für Filme
Weitere Informationen
- Unter der MIT-Lizenz veröffentlicht und frei nutz- sowie anpassbar
- Der Status der YTS API wird alle 15 Minuten automatisch überwacht und als normal (🟢) oder gestört (🔴) angezeigt
- Open-Source-Projekt, PRs und Sterne (⭐) sind willkommen
- Entwickler: eyeblech (E-Mail: 0x1123@proton.me)
1 Kommentare
Hacker-News-Kommentare
Auf Android TV habe ich mit Stremio(stremio.com) und dem Torrentio(torrentio.org)-Plugin ein ähnliches Ergebnis erzielt.
Es wäre schön, wenn man auch unter Linux per Terminal streamen könnte, und eine Prüfung auf schädliche Dateien vor dem Download wäre das i-Tüpfelchen.
So lassen sich die Anforderungen an den Speicherplatz minimieren.
Ich habe mich spontan gefragt, ob sich etwas Ähnliches auch mit Jellyfin umsetzen lässt, und beim Nachsehen festgestellt, dass
.strm-Dateien unterstützt werden..strmist einfach eine Textdatei, die eine URL enthält; ich habe dazu die Dokumentation und die Issues-Suche herangezogen.Da ich private Tracker nutze, müsste ich zwar selbst einen Custom Scraper bauen, um die Torrentio-Funktion zu ersetzen, aber das automatische Erzeugen von
.strm-Dateien dürfte nicht schwierig sein.Bei Performance oder Transcoding müsste ich allerdings noch etwas genauer prüfen.
Es fühlt sich an, als würde das Echo von Popcorn Time wiederhallen.
Wenn CineCLI zu einfach zu benutzen wird, könnten Urheberrechtswarnungen einfliegen, aber vielleicht ist es etwas sicherer, da es offenbar keine direkte Wiedergabefunktion hat.
Für Leute, die mit CLI-Tools umgehen können, ist es auch nicht schwer, hochwertige Releases direkt herunterzuladen.
Dafür braucht man auch keine Verfahren wie Interviews für private Tracker.
YTS ist qualitativ zu schwach, deshalb bin ich mir nicht sicher, wer hier die Zielgruppe ist — wenn es einfach ein Experimentierprojekt ist, um eine App auf einer API aufzubauen, ergibt das Sinn.
Ich habe selbst etwas Ähnliches gebaut: eine Web-App, mit der man jeden von Jackett unterstützten Tracker durchsuchen und direkt im Browser streamen kann.
Der Code ist offen, man kann ihn auf GitHub - rapidbay ansehen.
Ich frage mich, welcher Befehl gut wäre, um das schnell mit uv zu installieren oder auszuführen.
uvx cinecli search "star wars"lässt es sich direkt starten.Ich hätte gern ein Tool, das nur einen bestimmten Zeitstempelbereich streamen und diesen Bereich als lokale Datei speichern kann.
Mit so einer Funktion wären viele Workflows deutlich effizienter.
Terrarium TV war das Original, danach kamen Forks wie Corn Time, Cinema APK, TeaTV und BeeTV.
Das ist letztlich nur ein Wrapper für die YTS-API.
Sieht ziemlich cool aus. Ich setze es mal auf meine Testliste.
Ich konnte nicht erkennen, ob das GIF ruckelt oder ob die tatsächliche Tippgeschwindigkeit so ist.
Falls gewünscht, könnte ich auch Schreibtraining anbieten, um auf zweistellige WPM zu kommen.
Das Projekt selbst ist großartig, aber beim Demo-Video wäre es besser, vorher festzulegen, was gezeigt werden soll, ein paar Mal zu üben und dann mit einem natürlichen Ablauf aufzunehmen.
Kurze Pausen, damit die Zuschauer mitkommen, sind okay, aber langsames Tippen ist schwer anzusehen.
Eigentlich würde schon etwas grundlegende ffmpeg-Bearbeitung einen großen Unterschied machen.
Ich konnte es nicht bis zum Ende ansehen, und nebenbei bemerkt scheint auch ein pip-Update nötig zu sein.