3 คะแนน โดย GN⁺ 2025-12-25 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • CineCLI เป็นเครื่องมือ CLI ข้ามแพลตฟอร์มที่สามารถค้นหาข้อมูลภาพยนตร์และสั่งรันทอร์เรนต์ได้โดยตรงในสภาพแวดล้อมเทอร์มินัล
  • ดึงข้อมูลภาพยนตร์ผ่าน YTS API และเลือก คุณภาพสูงสุดกับ seed ที่สมบูรณ์ ให้โดยอัตโนมัติ
  • พัฒนาบนพื้นฐาน Python 3.11+ และใช้ Typer กับ Rich เพื่อมอบอินเทอร์เฟซที่ใช้งานเข้าใจง่าย
  • ในสภาพแวดล้อม Nix/NixOS สามารถรันได้โดยไม่ต้องติดตั้งเพิ่มเติม และส่ง magnet link ไปยังไคลเอนต์ทอร์เรนต์เริ่มต้นของระบบปฏิบัติการ
  • รองรับตั้งแต่การค้นหาแบบคำสั่งง่าย ๆ ไปจนถึง โหมดโต้ตอบ ทำให้เป็นเครื่องมือที่มีประโยชน์ทั้งสำหรับนักพัฒนาและคนรักภาพยนตร์

ภาพรวมของ CineCLI

  • CineCLI เป็นแอปพลิเคชัน CLI ที่รวดเร็วและมินิมอลสำหรับสำรวจ ตรวจสอบ และรันทอร์เรนต์ภาพยนตร์จากในเทอร์มินัลโดยตรง
    • ใช้งานได้ทั้งบน Linux, macOS และ Windows
    • มอบ เทอร์มินัล UI ที่ดูสะอาดตา ซึ่งสร้างด้วย rich
  • ใช้ YTS API เพื่อค้นหาข้อมูลภาพยนตร์ และแสดงผลลัพธ์ในรูปแบบ ID·ชื่อเรื่อง·ปี·คะแนน
  • ผู้ใช้สามารถเลือก ID ของภาพยนตร์เพื่อดูรายละเอียด และเลือกทอร์เรนต์ที่ต้องการหรือใช้ฟังก์ชันเลือกอัตโนมัติได้

ฟีเจอร์หลัก

  • ค้นหาภาพยนตร์: ค้นหาหนังบน YTS ด้วยคำสั่ง cinecli search <제목>
  • ดูรายละเอียด: แสดงข้อมูลรายละเอียดของภาพยนตร์ที่เลือกและรายการทอร์เรนต์ที่มีให้ใช้
  • เลือกทอร์เรนต์อัตโนมัติ: เลือกให้โดยอัตโนมัติตามคุณภาพสูงสุดและ seed ที่สมบูรณ์
  • รันทอร์เรนต์: ส่ง magnet link ไปยังไคลเอนต์เริ่มต้นที่ลงทะเบียนไว้กับระบบ (qBittorrent, Transmission เป็นต้น)
  • มีตัวเลือกสำหรับดาวน์โหลดไฟล์ .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 อยู่ข้างใน โดยอ้างอิง เอกสารที่เกี่ยวข้อง และ ค้นหาอีสชู นี้
      เพราะใช้ private tracker อยู่ จึงต้องทำ custom scraper เองเพื่อแทนฟังก์ชันของ Torrentio แต่การสร้างไฟล์ .strm อัตโนมัติดูไม่น่าจะยาก
      เพียงแต่เรื่องประสิทธิภาพหรือปัญหา transcoding ยังต้องตรวจสอบเพิ่มอีกหน่อย
    • (ปฏิกิริยาสั้น ๆ) ชู่ว...
  • ให้ความรู้สึกเหมือนได้ยินเสียงสะท้อนของ Popcorn Time กลับมาอีกครั้ง
    ถ้า CineCLI ใช้ง่ายเกินไปก็อาจโดน คำเตือนเรื่องลิขสิทธิ์ ได้ แต่ดูเหมือนจะไม่มีฟีเจอร์เล่นโดยตรง จึงอาจปลอดภัยกว่านิดหน่อย

    • Popcorn Time เป็น แอประดับตำนาน จริง ๆ RIP
  • ถ้าเป็นคนที่ใช้เครื่องมือ CLI เป็น การดาวน์โหลดรีลีสคุณภาพสูงด้วยตัวเองก็ไม่ได้ยาก
    ไม่ต้องผ่านขั้นตอนอย่างการสัมภาษณ์เข้า private tracker ด้วย
    YTS คุณภาพต่ำเกินไป เลยไม่ค่อยแน่ใจว่าโปรเจกต์นี้ทำมาเพื่อใคร — ถ้าเป็น โปรเจกต์ทดลอง ที่แค่อยากลองทำแอปครอบ API ก็ดูเข้าใจได้

    • สงสัยว่าตอนนี้ที่ไหนยังน่าใช้อยู่บ้าง ความรู้สึกแบบ Napster สมัยก่อนกำลังกลับมาอีกแล้ว
  • ผมก็เคยทำอะไรคล้าย ๆ กัน เป็นเว็บแอปที่ค้นหา tracker ไหนก็ได้ที่ Jackett รองรับ แล้วสตรีมในเบราว์เซอร์ได้ทันที
    โค้ดเปิดอยู่ ดูได้ที่ GitHub - rapidbay

  • สงสัยว่าถ้าจะติดตั้งหรือรันอันนี้อย่างรวดเร็วด้วย uv ควรใช้คำสั่งอะไร

    • สามารถรันได้ทันทีด้วยคำสั่ง uvx cinecli search "star wars"
  • สิ่งที่ผมอยากได้คือเครื่องมือที่ สตรีมเฉพาะช่วง timestamp ที่กำหนด และบันทึกช่วงนั้นเป็นไฟล์ในเครื่องได้
    ถ้ามีฟีเจอร์แบบนี้ เวิร์กโฟลว์หลายอย่างน่าจะมีประสิทธิภาพขึ้นมาก

    • ถ้าสามารถเก็บข้อมูลได้ว่าคนดาวน์โหลดแค่บางช่วงแทนทั้งสตรีม ก็อาจนำไปใช้เป็นเหตุผลสนับสนุน fair use ของทอร์เรนต์ ได้เหมือนกัน
    • สงสัยว่าการสตรีมตาม timestamp ทำกันอย่างไร
    • ผมก็สงสัยเหมือนกัน — สตรีมตาม timestamp ทำได้จริงหรือ?
  • Terrarium TV เป็นต้นฉบับ จากนั้นก็มีฟอร์กอย่าง Corn Time, Cinema APK, TeaTV, BeeTV ตามมา

  • นี่ก็แค่ ตัวห่อ API ของ YTS เท่านั้น

  • ดูเท่มาก เดี๋ยวจะเพิ่มไว้ในรายการทดสอบ

  • แยกไม่ออกว่า GIF กระตุกหรือว่า ความเร็วในการพิมพ์ เป็นแบบนั้นจริง ๆ
    ถ้าต้องการ ผมสอนไทป์ให้ขึ้นไปถึง WPM สองหลัก ได้นะ

    • ของแบบนี้ถ้าเตรียมตัวอีกนิดก็น่าจะทำให้ออกมาลื่นไหลกว่านี้มาก
      ตัวโปรเจกต์ยอดเยี่ยมอยู่แล้ว แต่สำหรับวิดีโอเดโม ควรกำหนดก่อนว่าจะโชว์อะไรและซ้อมสักสองสามรอบ แล้วค่อยอัดให้มี จังหวะที่เป็นธรรมชาติ
      จะหยุดสั้น ๆ ให้คนดูตามทันก็ไม่เป็นไร แต่การพิมพ์ช้ามากดูแล้วทรมาน
    • น่าขำตรงที่ใน GitHub โปรไฟล์ของผู้เขียนมีลิงก์ monkeytype อยู่
      จริง ๆ แค่เรียนรู้ การตัดต่อด้วย ffmpeg พื้นฐานก็น่าจะช่วยได้เยอะแล้ว
    • ผมก็เข้ามาอ่านคอมเมนต์เพราะวิดีโอช้านั่นเหมือนกัน
      ดูไม่จบเลย แล้วก็อีกอย่าง ดูเหมือน pip ก็ควรอัปเดตด้วย