- 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) เพื่อทำขั้นตอนค้นหา→เลือก→ดาวน์โหลดแบบเป็นลำดับ
การติดตั้งและการรัน
ตัวอย่างการใช้งาน
เทคโนโลยีที่ใช้
- Python เป็นพื้นฐาน
- Typer: เฟรมเวิร์กสำหรับ CLI
- Rich: ใช้สร้างเทอร์มินัล UI
- Requests: สำหรับสื่อสารกับ API
- YTS API: แหล่งข้อมูลภาพยนตร์
ข้อมูลอื่น ๆ
- เผยแพร่ภายใต้ สัญญาอนุญาต MIT จึงใช้งานและแก้ไขได้อย่างอิสระ
- สถานะของ YTS API ถูกตรวจสอบอัตโนมัติทุก 15 นาที และแสดงเป็นสถานะปกติ (🟢) หรือขัดข้อง (🔴)
- เป็น โครงการโอเพนซอร์ส ที่ยินดีต้อนรับทั้ง PR และการกดดาว (⭐)
- ผู้พัฒนา: eyeblech (อีเมล: 0x1123@proton.me)
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
บน Android TV สามารถได้ผลลัพธ์คล้ายกันโดยใช้ปลั๊กอิน Stremio(stremio.com) และ Torrentio(torrentio.org)
ถ้าบน Linux ก็สตรีมผ่านเทอร์มินัลได้ด้วยก็คงดี และถ้ามีฟีเจอร์ ตรวจหาไฟล์อันตราย ก่อนดาวน์โหลดก็น่าจะสมบูรณ์แบบยิ่งขึ้น
แบบนี้ช่วยลดความต้องการพื้นที่เก็บข้อมูลให้เหลือน้อยที่สุดได้
อยู่ ๆ ก็สงสัยว่า Jellyfin จะทำอะไรคล้ายกันได้ไหม พอค้นดูก็พบว่ารองรับไฟล์
.strm.strmเป็นเพียงไฟล์ข้อความที่มี URL อยู่ข้างใน โดยอ้างอิง เอกสารที่เกี่ยวข้อง และ ค้นหาอีสชู นี้เพราะใช้ private tracker อยู่ จึงต้องทำ custom scraper เองเพื่อแทนฟังก์ชันของ Torrentio แต่การสร้างไฟล์
.strmอัตโนมัติดูไม่น่าจะยากเพียงแต่เรื่องประสิทธิภาพหรือปัญหา transcoding ยังต้องตรวจสอบเพิ่มอีกหน่อย
ให้ความรู้สึกเหมือนได้ยินเสียงสะท้อนของ Popcorn Time กลับมาอีกครั้ง
ถ้า CineCLI ใช้ง่ายเกินไปก็อาจโดน คำเตือนเรื่องลิขสิทธิ์ ได้ แต่ดูเหมือนจะไม่มีฟีเจอร์เล่นโดยตรง จึงอาจปลอดภัยกว่านิดหน่อย
ถ้าเป็นคนที่ใช้เครื่องมือ CLI เป็น การดาวน์โหลดรีลีสคุณภาพสูงด้วยตัวเองก็ไม่ได้ยาก
ไม่ต้องผ่านขั้นตอนอย่างการสัมภาษณ์เข้า private tracker ด้วย
YTS คุณภาพต่ำเกินไป เลยไม่ค่อยแน่ใจว่าโปรเจกต์นี้ทำมาเพื่อใคร — ถ้าเป็น โปรเจกต์ทดลอง ที่แค่อยากลองทำแอปครอบ API ก็ดูเข้าใจได้
ผมก็เคยทำอะไรคล้าย ๆ กัน เป็นเว็บแอปที่ค้นหา tracker ไหนก็ได้ที่ Jackett รองรับ แล้วสตรีมในเบราว์เซอร์ได้ทันที
โค้ดเปิดอยู่ ดูได้ที่ GitHub - rapidbay
สงสัยว่าถ้าจะติดตั้งหรือรันอันนี้อย่างรวดเร็วด้วย uv ควรใช้คำสั่งอะไร
uvx cinecli search "star wars"สิ่งที่ผมอยากได้คือเครื่องมือที่ สตรีมเฉพาะช่วง timestamp ที่กำหนด และบันทึกช่วงนั้นเป็นไฟล์ในเครื่องได้
ถ้ามีฟีเจอร์แบบนี้ เวิร์กโฟลว์หลายอย่างน่าจะมีประสิทธิภาพขึ้นมาก
Terrarium TV เป็นต้นฉบับ จากนั้นก็มีฟอร์กอย่าง Corn Time, Cinema APK, TeaTV, BeeTV ตามมา
นี่ก็แค่ ตัวห่อ API ของ YTS เท่านั้น
ดูเท่มาก เดี๋ยวจะเพิ่มไว้ในรายการทดสอบ
แยกไม่ออกว่า GIF กระตุกหรือว่า ความเร็วในการพิมพ์ เป็นแบบนั้นจริง ๆ
ถ้าต้องการ ผมสอนไทป์ให้ขึ้นไปถึง WPM สองหลัก ได้นะ
ตัวโปรเจกต์ยอดเยี่ยมอยู่แล้ว แต่สำหรับวิดีโอเดโม ควรกำหนดก่อนว่าจะโชว์อะไรและซ้อมสักสองสามรอบ แล้วค่อยอัดให้มี จังหวะที่เป็นธรรมชาติ
จะหยุดสั้น ๆ ให้คนดูตามทันก็ไม่เป็นไร แต่การพิมพ์ช้ามากดูแล้วทรมาน
จริง ๆ แค่เรียนรู้ การตัดต่อด้วย ffmpeg พื้นฐานก็น่าจะช่วยได้เยอะแล้ว
ดูไม่จบเลย แล้วก็อีกอย่าง ดูเหมือน pip ก็ควรอัปเดตด้วย