Aplikasi streaming video lokal berbasis HLS ABR (Adaptive Bitrate Streaming) dengan estetika desain Retro Pixel Art 8-bit.
Semua file mentah video (seperti .mkv, .mp4) yang akan dikonversi diletakkan di dalam folder RAW/ dengan hierarki berikut:
RAW/
└── <kategori>/
└── <judul_anime_atau_media>/
└── <nomor_season>/
├── [Doronime.id] GSYOS 17 [480p] [h265].mkv
├── [Doronime.id] GSYOS 18 [480p] [h265].mkv
└── ...
RAW/anime/gsyos/1/[Doronime.id] GSYOS 01.mkvRAW/anime/gsyos/2/[Doronime.id] GSYOS 17 [480p] [h265].mkvRAW/donghua/btth/5/[Donghua] BTTH 01.mp4
💡 Catatan Penamaan: Nama folder di bawah
RAW/tidak case-sensitive (misal:GSYOSataugsyosakan otomatis diarahkan ke folder produksianime/gsyos/).
Skrip ./hls.sh mendukung Multi-Input Batching, Auto-Cleanup, dan Auto-Metadata Generator.
./hls.sh "RAW/anime/gsyos/2/[Doronime.id] GSYOS 17 [480p] [h265].mkv"./hls.sh "RAW/anime/gsyos/2/[Doronime.id] GSYOS 17 [480p] [h265].mkv" "RAW/anime/gsyos/2/[Doronime.id] GSYOS 18 [480p] [h265].mkv"./hls.sh RAW/anime/gsyos/2/*.mkv- Auto-Routing ke Folder Produksi:
- Skrip secara otomatis menempatkan hasil konversi HLS ke lokasi produksi utama (misal:
anime/gsyos/2/Episode 17_hls) di luar folderRAW/.
- Skrip secara otomatis menempatkan hasil konversi HLS ke lokasi produksi utama (misal:
- Auto-Cleanup (Penghapusan Otomatis File Mentah):
- Setelah proses HLS ABR, ekstraksi subtitle
.vtt, dan pendaftaran metadata berhasil 100%, file mentah.mkv/.mp4di folderRAW/akan otomatis dihapus bersih untuk menghemat ruang penyimpanan.
- Setelah proses HLS ABR, ekstraksi subtitle
- Pangkas Nama Episode (Clean Naming):
- Tag panjang seperti
[Doronime.id]atau[480p] [h265]otomatis dibuang dan nama episode dibersihkan menjadiEpisode 17,Episode 18, dst.
- Tag panjang seperti
- Auto-Pembaruan Metadata (
metadata.json):- Episode baru langsung terdaftar dan dapat langsung diputar di Web UI tanpa perlu konfigurasi manual.
Jalankan perintah HTTP server lokal di direktori utama:
python3 -m http.server 8000Buka browser dan akses alamat:
http://localhost:8000
Skrip mendukung penataan folder dengan folder season maupun tanpa folder season:
RAW/
└── anime/
└── gsyos/
└── 2/
└── [Doronime.id] GSYOS 17 [480p] [h265].mkv
📁 Hasil Output: anime/gsyos/2/Episode 17_hls/
RAW/
└── anime/
└── fulldive rpg/
└── [doronime.id] fulldive rpg [480p] 04.mkv
📁 Hasil Output: anime/fulldive rpg/Episode 04_hls/
- Format Nama Folder HLS Konsisten (
Episode <nomor>_hls):- Nama folder HLS yang dihasilkan di tingkat direktori otomatis dipangkas dari judul file yang panjang menjadi
Episode 04_hls,Episode 14_hls, dst.
- Nama folder HLS yang dihasilkan di tingkat direktori otomatis dipangkas dari judul file yang panjang menjadi
- Ekstraksi Otomatis Websumber dari Tag File/Folder:
- Jika nama file/folder mengandung tag domain seperti
[doronime.id], skrip otomatis mengekstrak provider (Doronime.id), URL (https://doronime.id), dan ikon favicon tanpa perlu pendaftaran manual.
- Jika nama file/folder mengandung tag domain seperti
- Kategorisasi & Sub-label Hierarki Direktori pada Hasil Pencarian:
- Saat pengguna menggunakan fitur pencarian global di Web UI, setiap kartu media menampilkan sub-label path direktori (misal:
📁 anime/fulldive rpg) untuk memudahkan navigasi.
- Saat pengguna menggunakan fitur pencarian global di Web UI, setiap kartu media menampilkan sub-label path direktori (misal:
Karena segmen video HLS (.ts) berukuran cukup besar, skrip ./push.sh (berbasis git_smart_push.py) disediakan untuk mengunggah file media ke GitHub secara otomatis dan aman dari batas maksimal komit (2.0 GB).
./push.sh- Menghitung ukuran total berkas media
.tsyang baru atau berubah. - Otomatis membagi komit menjadi beberapa batch aman (maksimal ~1.2 GB per push).
- Melakukan
git add,git commit, dangit pushberurutan hingga seluruh berkas media terunggah 100% tanpa risiko error batas ukuran push GitHub.
Skrip ./pull.sh (berbasis git_smart_pull.py) digunakan untuk mengambil update kode/metadata terbaru dari GitHub sekaligus menghemat ruang penyimpanan lokal dengan menghapus segmen .ts lokal:
./pull.sh- Konfigurasi & Pull Blobless (
--filter=blob:none): Mengaktifkan konfigurasi blobless pada remote origin sehingga saatgit pull, Git hanya mengambil histori teks, metadata, playlist.m3u8, subtitle.vtt, dan poster.jpgtanpa mengunduh riwayat blob biner.ts. - Pembersihan
.tsdi Working Directory: Menghapus seluruh file segmen.tsdi folder kategori lokal (misal:anime/,donghua/) untuk membebaskan ruang disk PC. git update-index --assume-unchanged: Menandai file.tsagar Git mengabaikan hilangnya file.tsdi lokal.- File
.tsdi repositori remote GitHub tetap utuh dan terjaga 100%. - Git tidak akan menganggap file
.tsterhapus / modified saat melakukan commit/push di masa mendatang. - Pemutar HLS tetap memutar video secara online melalui CDN GitHub RAW.
- File
- Pembersihan Database Objek Lokal (
.git/objects/pack): Menjalankan repack blobless dan garbage collection (git repack -a -d --filter=blob:none&git gc --prune=now) untuk menyusutkan ukuran direktori.git/lokal.
Agar struktur data tetap rapi, tidak terjadi duplikasi manual, dan sistem berjalan secara otomatis:
- Fungsi: Tempat manusia (pengembang) mendaftarkan nama alternatif (judul Mandarin, Jepang, Indonesia), kata kunci pencarian, serta informasi situs penyedia media (sources/provider).
- Aturan: Segala pembaruan judul pencarian atau provider HANYA dilakukan di berkas ini.
- Fungsi: Berkas JSON kompilasi akhir yang dikonsumsi langsung oleh Web UI (
explorer.js). - Aturan: Berkas ini DISUSUN OTOMATIS oleh skrip Python (
generate_hls.py). Skrip akan membaca folder video fisik lalu me-merge informasi alias & source darialiases.jsonsecara otomatis. Jangan mengedit berkas ini secara manual!
Widget komentar retro terpasang tepat di bawah HLS Player Monitor. Widget ini mendukung Multi-Room Otomatis:
- Berdasarkan Media Diputar: Setiap episode di dalam sub-direktori (misal
donghua/am->Episode 1) secara otomatis memiliki ruang komentar tersendiri dengan nama room unikdonghua_am_Episode_1. - Berdasarkan Folder / Sub-Dir: Ketika menelusuri folder tanpa memilih media, room otomatis menyesuaikan nama folder tersebut (misal
?room=donghua_am).
| Tipe Navigasi | URL Room Komentar (https://komen.site.je) |
|---|---|
| Library Utama | https://komen.site.je/index.php?room=default |
| Sub-Directory | https://komen.site.je/index.php?room=donghua_am |
| Media Episode | https://komen.site.je/index.php?room=donghua_am_Episode_1 |
- Dukungan Softsub WebVTT: Softsub yang diekstrak menjadi file
.vtt(misal:sub_0_ind.vtt) dari rilis softsub secara otomatis terdeteksi, tercatat dimetadata.json, dan tombol toggle SUBTITLE pada pemutar video otomatis aktif.