- Kyoo adalah server media self-hosted yang berfokus pada konten video seperti film, serial, dan anime, serta menjadi alternatif untuk Jellyfin atau Plex
- Kyoo bertujuan untuk berjalan tanpa memaksakan struktur folder atau pengeditan metadata manual; jika media tidak terpindai dengan benar karena nama file yang aneh, itu dianggap sebagai bug
- Fiturnya tidak diperluas lewat sistem plugin, melainkan disediakan sebagai fitur bawaan, termasuk dynamic transcoding, thumbnail pratinjau, deteksi intro/kredit, dan dukungan subtitle tingkat lanjut
- Saat ini klien mendukung Web; Android belum tersedia di v5, dan dukungan iOS serta tvOS saat ini tidak direncanakan karena pembelian perangkat keras dan biaya developer tahunan sekitar $100
- Administrator server dapat memakai file di direktori unduhan tanpa perlu merapikannya secara terpisah, dan Kyoo mempersempit cakupannya pada streaming video, bukan musik, e-book, atau game
Masalah yang ingin diselesaikan Kyoo
- Kyoo adalah server media self-hosted yang dikhususkan untuk konten video
- Konten sasarannya adalah Movies, Series, Anime
- Diposisikan sebagai alternatif untuk Jellyfin atau Plex
- Bertujuan menurunkan beban pemeliharaan
- Tidak membutuhkan struktur folder tertentu
- Tidak membutuhkan pengeditan metadata manual
- Media harus terpindai dengan benar meskipun nama filenya aneh; jika gagal, itu diperlakukan sebagai bug
- Tidak menyediakan sistem plugin
- Arah pengembangannya adalah membuat fitur sebisa mungkin menjadi bawaan
Fitur utama
-
Dynamic Transcoding
- Dapat mentranskode media ke kualitas yang diinginkan
- Perubahan kualitas saat pemutaran dimungkinkan melalui perpindahan kualitas otomatis
- Dapat langsung melakukan seek tanpa menunggu transcoder
-
Video Preview Thumbnails
- Saat mengarahkan mouse ke progress bar video, pratinjau video dapat dilihat
-
Intro/Credit detection
- Mendeteksi intro dan kredit secara otomatis dengan audio fingerprinting
- Pencocokan judul chapter juga dapat digunakan
-
Enhanced Subtitle Support
- Mendukung subtitle PGS/VODSUB dan SSA/ASS
- Menggunakan font yang disertakan dalam video jika memungkinkan
-
Anime Name Parsing
- Dapat mencocokkan nama file anime yang kompleks seperti
[Some-Stuffs] Jojo's Bizarre Adventure Stone Ocean 24 (1920x1080 Blu-Ray Opus) [2750810F].mkv
- Dapat mencocokkan nama file anime yang kompleks seperti
-
Helm Chart
- Tersedia Helm chart resmi untuk deployment ke cluster Kubernetes
- Dukungan multi-replica sedang dikerjakan
-
OIDC Connection
- Dapat login melalui layanan kompatibel OIDC seperti Google, Discord, dan Authelia
Fitur yang belum diimplementasikan ulang di v5
-
Watch List Scrubbing Support
- Fitur untuk menyinkronkan watch list secara otomatis ke layanan yang terhubung belum diimplementasikan ulang di v5
- Targetnya adalah SIMKL dan layanan lain di masa mendatang
-
Download and Offline Support
- Dukungan download untuk menonton tanpa internet dan mode offline juga belum diimplementasikan ulang di v5
- Diperkenalkan sebagai fitur yang menyinkronkan progres ketika perangkat kembali online
Klien dan platform
- Klien yang saat ini didukung adalah Web
- Klien Android belum tersedia di v5 dan berstatus “soon”
- Platform tambahan sedang dipertimbangkan
- Frontend dibuat dengan React-Native dan Expo
- Dukungan perangkat Apple saat ini tidak direncanakan
- Targetnya adalah iOS dan tvOS
- Alasannya adalah pembelian perangkat keras dan biaya developer tahunan sekitar $100
Perbedaan dengan Jellyfin/Plex
- Jellyfin dan Plex dijelaskan secara teknis sebagai bergantung pada SQLite dan menempatkan semuanya dalam satu container
- Kyoo mengambil pendekatan menggunakan container tambahan bila diperlukan
- transcoder diberikan sebagai contoh
- Filosofi operasionalnya adalah “sekali setup lalu lupakan”
- Tidak meminta perubahan nama file secara manual
- Tidak mensyaratkan struktur folder tertentu
- Bertujuan menggunakan file di direktori unduhan apa adanya
- Cakupannya dibatasi pada streaming film, acara TV, dan anime
- Tidak mencakup musik, e-book, atau game
Materi untuk memulai dan integrasi
- API Documentation: Dokumentasi API untuk mengintegrasikan Kyoo dengan layanan lain
- Join the discord: Discord untuk pertanyaan, diskusi pengembangan, permintaan fitur, dan berbagi bug
- weblate: Dapat menambahkan terjemahan untuk bahasa yang belum didukung Kyoo
- kyoo.zoriya.dev: Menyediakan demo live berisi film bebas hak cipta
1 komentar
Komentar Hacker News
Demonya cantik dan dibuat dengan baik. Saya pengguna Plex yang puas—memakai Plexamp untuk audio dan aplikasi Plex untuk Apple TV untuk video—jadi tidak berniat pindah, tetapi menurut saya alasan bahwa proyek ini berawal dari proyek sandbox untuk mempelajari teknologi yang diminati lalu makin membesar adalah motivasi yang sangat bagus untuk membuat sesuatu
Saya juga sudah menyiapkan Jellyfin secara paralel untuk berjaga-jaga kalau suatu saat Plex memasuki tahap enshittification, tetapi keanggotaan seumur hidup yang saya beli pada 2012 sejauh ini sudah sangat sepadan
Saya sempat mencoba pindah dari Plex ke Jellyfin, tetapi keterbatasan terbesar Jellyfin adalah tampaknya tidak terlalu peduli pada pengelolaan pustaka dan membuat asumsi yang terlalu kuat tentang struktur file
Di wikinya ada bagian tersendiri yang hanya menjelaskan cara memberi nama file dengan benar, sesuatu yang tidak perlu dipikirkan di Plex. Saya penasaran apakah Kyoo memakai pendekatan serupa, atau lebih ramah pengguna. Cara monetisasi Plex memang konyol, tetapi Jellyfin masih terasa belum siap untuk dipakai serius
Saat ini masih ada kasus pengecualian, terutama item seperti video tambahan yang kadang tidak tertangani dengan baik. Meski begitu, nama file anime aneh seperti "[SomeGroup] Jojo's bizzare adventure - golden wings 12.mkv" pun bisa diproses
Sejujurnya saya juga ingin melihat Jellyfin versi ringan yang sama sekali tidak punya kode manajemen media dan hanya melakukan streaming
Setelah satu kali menentukan folder itu acara TV apa, episode-episodenya tampaknya dikenali otomatis. Hanya langkah awalnya saja yang tidak otomatis ketika nama folder tidak "benar", dan kemungkinan bisa diakali dengan membuat file NFO secara massal memakai Tiny Media Manager
Kelihatannya bagus. Menarik bahwa proyek-proyek server media tampaknya cenderung sangat menyukai C#. Saya penasaran apakah ada alasan teknis, atau lebih karena proyek-proyek besar sudah membentuk standarnya
Kyoo juga memakai Python dan Go untuk sebagian komponennya, serta TypeScript untuk frontend
Memakai Postgres dan RabbitMQ sekaligus terasa berlebihan. Saya penasaran apakah mereka akan menerima PR untuk menyeragamkannya ke Postgres saja demi mengurangi beban operasional
Nanti saat kembali ke desktop, saya perlu melihat apa tepatnya fungsi RabbitMQ di server media ini
Namun sinkronisasi sisi Kubernetes masih perlu dikerjakan lebih lanjut
Ia menyediakan sistem antrean yang sangat kokoh dan teruji, tetapi beban menjalankannya kecil. Berkat itu, struktur bisa tetap sederhana
Proyek yang menarik. Namun saya penasaran dengan bagian "menjelajah dengan mudah tanpa menunggu transcoder"
Bergantung pada container dan codec, ini selalu menjadi masalah. Saya penasaran bagaimana mereka menyelesaikannya, dan apakah tidak memakai libav
Bagian sulitnya adalah membuat segmen-segmen itu bisa ditonton tanpa jeda atau masalah, dan memastikan segmen audio atau video tidak berulang. Jika ada cukup minat, saya mungkin bisa menulis posting blog yang menjelaskannya secara detail
Sayang sekali tidak menangani musik. Alasan utama saya memakai Plex adalah pengelolaan pustaka musik, dan meski di Plex pun musik terasa seperti fokus sekunder, tetap saja cukup layak dipakai
Beberapa hari lalu saya menyiapkan Jellyfin dan tailscale di n100
Secara lokal berjalan baik, tetapi saat dibagikan lewat tailscale ke keluarga di sisi lain bumi, ada yang bermasalah. Meski kecepatan unggah cukup tinggi, butuh sekitar 1 menit sampai stream mulai berjalan, mungkin ada kaitannya dengan latensi. Saya berencana mencoba ini
Saya sarankan mencoba mengganti congestion control bawaan Linux (
net.ipv4.tcp_congestion_control) di server Jellyfin dan reverse proxy menjadibbr. Saya tidak tahu detailnya dan mungkin ada efek samping [1], serta mungkin ada algoritma congestion control yang lebih baik, tetapi dalam kasus saya ini menyelesaikan masalah sepenuhnya. Sebelumnya, bahkan dalam kondisi jaringan yang tenang dan optimal, koneksi macet di bawah 10% dari kecepatan jalur, kadang sampai 1%Selain itu, karena Caddy mengaktifkan HTTP/3 secara default, saya memaksanya ke HTTP/2. Sepertinya nanti saya juga perlu melihat versi bbr yang lebih baru
[1] https://news.ycombinator.com/item?id=37408406
Kelihatannya sangat bagus. Saya penasaran apakah bisa casting ke TV. Ini satu-satunya alasan saya masih terikat pada Plex, selain itu saya tidak suka Plex
Melihat arah yang ditempuh Plex, menyenangkan ada lebih banyak pilihan. Akan bagus kalau ada hook yang langsung terhubung ke SONARR/RADARR, sehingga saat mengklik item kalender bisa langsung masuk ke player
Mungkin mereka enggan membuatnya langsung karena masalah hukum, tetapi menggabungkan media self-hosted dan fitur pengelolaan bajakan dalam satu antarmuka sepertinya praktis
Kelihatannya bagus. Saya mencoba mengeklik beberapa film di halaman demo dan menjelajah secara acak, semuanya berjalan sempurna
Saya penasaran soal skalabilitasnya. Saya ingin tahu berapa banyak pengguna yang bisa ditangani satu server, dan jenis server seperti apa yang dibutuhkan. Halaman demo berjalan di atas apa, dan kira-kira pada jumlah pengguna berapa akan mulai kewalahan
Saya belum pernah melakukan benchmark server, tetapi faktor pembatasnya hampir pasti adalah kecepatan encoding mesin. Jika semua klien harus mentranskode film h265 8K yang berbeda secara bersamaan, kebutuhan performa GPU/CPU-nya akan benar-benar berbeda dibanding jumlah pengguna yang sama melakukan direct play