CineCLI, pour rechercher des films et lancer des torrents directement depuis le terminal
(github.com/eyeblech)- CineCLI est un outil CLI multiplateforme qui permet de rechercher des informations sur des films et de lancer directement des torrents depuis un terminal
- Il récupère les données des films via l’API YTS et sélectionne automatiquement la meilleure qualité et les seeds les plus sains
- Développé en Python 3.11+, il offre une interface intuitive grâce à Typer et Rich
- Dans les environnements Nix/NixOS, il peut être exécuté sans installation séparée et transmet les liens magnet au client torrent par défaut de l’OS
- Il prend en charge aussi bien les recherches en ligne de commande simples qu’un mode interactif, ce qui en fait un outil utile pour les développeurs comme pour les cinéphiles
Présentation de CineCLI
- CineCLI est une application CLI rapide et minimaliste permettant de parcourir, consulter et lancer des torrents de films depuis le terminal
- Fonctionne sous Linux, macOS et Windows
- Fournit une interface terminal visuellement soignée basée sur
rich
- Il utilise l’API YTS pour rechercher des informations sur les films, et affiche les résultats sous la forme ID, titre, année et note
- L’utilisateur peut sélectionner l’ID d’un film pour consulter les détails, puis choisir le torrent souhaité ou utiliser la sélection automatique
Fonctionnalités principales
- Recherche de films : recherche sur YTS avec la commande
cinecli search <titre> - Affichage des détails : montre les informations détaillées du film sélectionné ainsi que la liste des torrents disponibles
- Sélection automatique du torrent : choisit automatiquement selon la meilleure qualité d’image et des seeds en bon état
- Lancement du torrent : transmet le lien magnet au client par défaut enregistré dans l’OS (
qBittorrent,Transmission, etc.) - Option de téléchargement de fichier
.torrent - Prise en charge d’un mode interactif permettant d’effectuer pas à pas la recherche → la sélection → le téléchargement
Installation et exécution
- Installation avec pip :
pip install cinecli- Python 3.11 ou version supérieure requis
- Prise en charge de Nix/NixOS :
- Basé sur flake, exécutable sans installer Python ni pip
- Exécution directe avec la commande
nix run github:eyeblech/cinecli - Ajout possible au profil avec
nix profile add github:eyeblech/cinecli
- Installation depuis le code source (pour les développeurs) :
git clone https://github.com/eyeblech/cinecli.git cd cinecli pip install -e .
Exemples d’utilisation
- Exemple de recherche
Exemple de résultat :cinecli search matrixID Title Year Rating 3525 The Matrix 1999 8.7 3526 The Matrix Reloaded 2003 7.2 - Commande pour regarder un film
cinecli watch 3525- Affiche les détails du film
- Affiche la liste des torrents disponibles
- Après sélection automatique ou manuelle, lance le magnet ou télécharge le fichier
.torrent
Stack technique
- Basé sur Python
- Typer : framework CLI
- Rich : construction de l’interface terminal
- Requests : communication avec l’API
- API YTS : source des données des films
Autres informations
- Publié sous licence MIT, avec libre utilisation et modification
- L’état de l’API YTS est surveillé automatiquement toutes les 15 minutes et affiché comme normal (🟢) ou en panne (🔴)
- En tant que projet open source, les PR et les étoiles (⭐) sont les bienvenues
- Créateur : eyeblech (e-mail : 0x1123@proton.me)
1 commentaires
Commentaires sur Hacker News
J’ai obtenu un résultat similaire sur Android TV avec Stremio(stremio.com) et le plugin Torrentio(torrentio.org)
Ce serait bien si on pouvait aussi faire du streaming depuis le terminal sous Linux, et ce serait encore plus parfait avec une fonction d’analyse des fichiers malveillants avant le téléchargement
Cela permet de réduire au minimum les besoins en espace de stockage
Je me suis soudain demandé si une configuration similaire était possible avec Jellyfin, et en regardant, j’ai vu qu’il prenait en charge les fichiers
.strmUn fichier
.strmest simplement un fichier texte contenant une URL ; j’ai consulté la documentation associée et une recherche d’issuesComme j’utilise un tracker privé, il me faudrait développer moi-même un scraper personnalisé pour remplacer la fonction de Torrentio, mais générer automatiquement des fichiers
.strmne semble pas très difficileIl faudrait toutefois vérifier davantage les questions de performances et de transcodage
On a l’impression d’entendre à nouveau l’écho de Popcorn Time
Si CineCLI devient trop facile à utiliser, il pourrait recevoir des avertissements pour atteinte au droit d’auteur, mais comme il ne semble pas avoir de fonction de lecture directe, c’est peut-être un peu moins risqué
Pour quelqu’un qui sait utiliser des outils en CLI, il n’est pas difficile de télécharger soi-même des releases de haute qualité
Il n’y a pas non plus besoin de passer par des procédures comme les entretiens pour trackers privés
YTS est de trop mauvaise qualité, donc je ne vois pas très bien à qui s’adresse ce projet — si c’est simplement un projet expérimental pour construire une appli au-dessus d’une API, je peux comprendre
J’ai aussi créé quelque chose de similaire : une webapp qui permet de rechercher sur n’importe quel tracker pris en charge par Jackett et de lancer le streaming directement dans le navigateur
Le code est public, on peut le voir sur GitHub - rapidbay
Je me demande quelle commande utiliser pour l’installer ou l’exécuter rapidement avec uv
uvx cinecli search "star wars"Ce que je voudrais, c’est un outil qui permette de streamer uniquement une plage de timestamps précise et d’enregistrer cette portion en fichier local
Avec une telle fonction, beaucoup de workflows seraient bien plus efficaces
Terrarium TV était l’original, puis il y a eu des forks comme Corn Time, Cinema APK, TeaTV et BeeTV
Ce n’est rien de plus qu’un wrapper de l’API YTS
Ça a l’air plutôt sympa. Je vais l’ajouter à ma liste de choses à tester
Je n’arrivais pas à distinguer si c’était le GIF qui saccadait ou si la vitesse de frappe était vraiment celle-là
Si besoin, je peux même proposer des cours de dactylo pour passer à un WPM à deux chiffres
Le projet lui-même est excellent, mais pour la vidéo de démonstration, il vaudrait mieux décider à l’avance de ce qu’on veut montrer et s’entraîner quelques fois pour l’enregistrer avec un flux naturel
Faire une courte pause pour permettre au spectateur de suivre, c’est très bien, mais une frappe lente est pénible à regarder
En réalité, le simple fait d’apprendre un peu de montage ffmpeg améliorerait déjà beaucoup les choses
Je n’ai pas réussi à aller jusqu’au bout, et au passage il semblerait aussi qu’une mise à jour de pip soit nécessaire