3 ポイント 投稿者 GN⁺ 2025-12-25 | 1件のコメント | WhatsAppで共有
  • CineCLIは、ターミナル環境で映画情報を検索し、トレントを直接実行できるクロスプラットフォーム CLI ツール
  • YTS APIを通じて映画データを取得し、最高品質かつ健全なシードを自動選択
  • Python 3.11+ベースで作られており、TyperRichを使って直感的なインターフェースを提供
  • Nix/NixOS環境では別途インストールなしで実行可能で、magnet リンクを OS の既定トレントクライアントへ渡す
  • 単純なコマンド型検索から対話モードまで対応し、開発者にも映画ファンにも便利なツール

CineCLI 概要

  • CineCLIは、ターミナルで映画トレントを探索・確認・実行できる高速でミニマルな CLI アプリケーション
    • Linux、macOS、Windows のすべてで動作
    • richベースの視覚的にすっきりしたターミナル UIを提供
  • YTS APIを使って映画情報を検索し、結果を ID・タイトル・年・評価の形式で表示
  • ユーザーは映画 ID を選んで詳細情報を確認し、希望するトレントを選択するか、自動選択機能を利用可能

主な機能

  • 映画検索: cinecli search <タイトル> コマンドで YTS から映画を検索
  • 詳細情報表示: 選択した映画の詳細情報と利用可能なトレント一覧を表示
  • 自動トレント選択: 最高画質と健全なシードを基準に自動選択
  • トレント実行: magnet リンクを OS に登録された既定クライアント(qBittorrentTransmission など)へ渡す
  • .torrent ファイルのダウンロードオプションを提供
  • **対話モード(interactive)**に対応し、検索→選択→ダウンロードの流れを段階的に実行

インストールと実行

  • pip インストール:
    pip install cinecli
    
    • Python 3.11 以上が必要
  • Nix/NixOS 対応:
    • flake ベースで Python や pip のインストールなしに実行可能
    • nix run github:eyeblech/cinecli コマンドですぐに実行可能
    • nix profile add github:eyeblech/cinecli でプロファイルに追加可能
  • ソースコードからインストール(開発者向け):
    git clone https://github.com/eyeblech/cinecli.git
    cd cinecli
    pip install -e .
    

使用例

  • 検索例
    cinecli search matrix
    
    実行結果の例:
    ID     Title                 Year   Rating
    3525   The Matrix            1999   8.7
    3526   The Matrix Reloaded   2003   7.2
    
  • 映画視聴コマンド
    cinecli watch 3525
    
    • 映画の詳細情報を表示
    • 利用可能なトレント一覧を出力
    • 自動または手動で選択後、magnet を実行、または .torrent をダウンロード

技術スタック

  • Pythonベース
  • Typer: CLI フレームワーク
  • Rich: ターミナル UI 構築
  • Requests: API 通信
  • YTS API: 映画データソース

その他の情報

  • MIT ライセンスで公開されており、自由に利用・改変可能
  • YTS API の状態は 15 分ごとに自動監視され、正常(🟢)または障害(🔴)として表示
  • オープンソースプロジェクトで、PR とスター(⭐)による参加を歓迎
  • 作者: eyeblech(メール: 0x1123@proton.me)

1件のコメント

 
GN⁺ 2025-12-25
Hacker Newsの意見
  • Android TVでStremio(stremio.com)とTorrentio(torrentio.org)プラグインを使って、似たような結果を得ていた
    Linuxでもターミナルからストリーミングできたらいいし、ダウンロード前に悪意のあるファイルの検査機能があればさらに完璧だと思う

    • Torrentioはメタデータを提供し、StremioがUIと再生を担当する
      こうすることでストレージ容量の要件を最小限にできる
      ふとJellyfinでも似た構成が可能か気になって調べてみたら、.strmファイルをサポートしていた
      .strmは単にURLが入っているテキストファイルで、関連ドキュメントissue検索を参考にした
      プライベートトラッカーを使っているので、Torrentioの機能を置き換えるカスタムスクレイパーを自作する必要はあるが、.strmファイルを自動生成するのは難しくなさそうだ
      ただし、パフォーマンスやトランスコーディングの問題はもう少し確認が必要だ
    • (短い反応)シーッ...
  • Popcorn Timeの残響がまた聞こえてくるような感じだ
    CineCLIがあまりに使いやすくなると著作権警告が飛んでくるかもしれないが、直接再生機能がないようなので、その分まだ安全かもしれない

    • Popcorn Timeは本当に伝説的なアプリだった。RIP
  • CLIツールを使える人なら、高品質なリリースを自分でダウンロードするのも難しくない
    プライベートトラッカーの面接のような手続きも必要ない
    YTSは品質が低すぎるので、このプロジェクトの対象が誰なのかよく分からない — 単にAPIの上にアプリを作ってみる実験用プロジェクトなら理解できる

    • 今どこが使えるのか気になる。昔のNapsterっぽさがまたこみ上げてきている
  • 自分も似たようなものを作ったことがあるが、Jackettが対応している任意のトラッカーを検索して、そのままブラウザでストリーミングできるWebアプリだ
    コードは公開しているので、GitHub - rapidbayで見られる

  • これをuvで素早くインストールまたは実行するには、どんなコマンドを使えばいいのか気になる

    • uvx cinecli search "star wars" コマンドでそのまま実行できる
  • 自分が欲しいのは、特定のタイムスタンプ区間だけをストリーミングして、その区間をローカルファイルとして保存できるツールだ
    こういう機能があれば、いろいろなワークフローがずっと効率的になると思う

    • もし人々がストリーム全体ではなく特定区間だけをダウンロードするデータを集められるなら、トレントのフェアユースの根拠としても使えるかもしれない
    • タイムスタンプをどうやってストリーミングするのか気になる
    • 自分も同じ疑問だ — タイムスタンプストリーミングは可能なのか?
  • Terrarium TVが元祖で、その後にCorn TimeCinema APKTeaTVBeeTVのようなフォークが出てきた

  • これは単なるYTS APIラッパーにすぎない

  • かなり良さそうに見える。テストリストに追加しておくつもりだ

  • GIFがカクついているのか、それとも実際のタイピング速度がああなのか判別できなかった
    望むならWPMを2桁に上げるタイピングレッスンもできる

    • こういうものは少し準備するだけで、ずっと滑らかにできそうだ
      プロジェクト自体は素晴らしいが、デモ動画はあらかじめ何を見せるか決めて何度か練習し、自然な流れで録画するのがよい
      視聴者がついていきやすいように少し止まるのは構わないが、遅いタイピングは見ていてつらい
    • 皮肉なことに、作者のGitHubプロフィールにはmonkeytypeへのリンクがある
      実際、基本的なffmpeg編集だけ覚えてもかなり良くなりそうだ
    • 自分もあの遅い動画のせいでコメントを見に来た
      最後まで見られなかったし、ちなみにpipの更新も必要そうだった