3 points par GN⁺ 2025-12-25 | 1 commentaires | Partager sur WhatsApp
  • 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
    cinecli search matrix
    
    Exemple de résultat :
    ID     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

 
GN⁺ 2025-12-25
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

    • Torrentio fournit les métadonnées, et Stremio se charge de l’UI et de la lecture
      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 .strm
      Un fichier .strm est simplement un fichier texte contenant une URL ; j’ai consulté la documentation associée et une recherche d’issues
      Comme 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 .strm ne semble pas très difficile
      Il faudrait toutefois vérifier davantage les questions de performances et de transcodage
    • (réaction brève) Chut...
  • 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é

    • Popcorn Time était vraiment une application légendaire. RIP
  • 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

    • Je me demande quels sont les sites valables aujourd’hui. Je recommence à ressentir la nostalgie de Napster
  • 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

    • On peut l’exécuter directement avec la commande 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

    • Si on pouvait collecter des données montrant que les gens ne téléchargent que certaines portions au lieu du flux complet, cela pourrait aussi servir d’argument de fair use des torrents
    • Je me demande comment on peut streamer à partir d’un timestamp
    • Même question pour moi — le streaming par timestamp est-il possible ?
  • 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

    • Avec un tout petit peu de préparation, ce genre de démo pourrait être beaucoup plus fluide
      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
    • Ironiquement, le profil GitHub de l’auteur contient un lien vers monkeytype
      En réalité, le simple fait d’apprendre un peu de montage ffmpeg améliorerait déjà beaucoup les choses
    • Je suis aussi venu voir les commentaires à cause de cette vidéo lente
      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