Kebanyakan VOD di Twitch cepat atau lambat akan hilang. Entah karena ketersediaannya telah habis masa berlakunya atau karena telah dihapus secara eksplisit. Jadi jika Anda belum selesai menonton VOD tepat waktu, kontennya akan hilang. Anda dapat mengunduh videonya, tetapi bagaimana dengan obrolannya? "Twitch VOD Offline Viewer" menyelesaikan masalah ini. Cukup unduh video + obrolan dan putar seperti VOD biasa kapan saja, bahkan saat offline¹.
¹ Emote di chat hanya akan muncul jika gambar dapat diunduh. Jadi untuk melihat emotenya tetap harus memiliki koneksi internet.
Waktu proses Node.js
Rekomendasi: Gunakan TwitchDownloader untuk mendownload video yang diinginkan, lihat tab "VOD Download". Tetapi alat lain untuk mengunduh VOD juga bisa digunakan.
Codec apa pun yang didukung oleh tag browser Anda.
Rekomendasi: Gunakan TwitchDownloader untuk mengunduh obrolan yang sesuai, lihat tab "Unduhan Obrolan". Pilih "Teks" dan "Relatif".
Jika Anda membuat file obrolan dengan cara lain, format yang diharapkan adalah:
[0:00:01] Alice: hi everyone HeyGuys [0:00:01] John: PogChamp [0:00:03] Bob: hey @Alice [0:00:07] Alice: nice to see you, Bob
Stempel waktu dalam tanda kurung siku (jam bisa satu atau dua digit)
Ruang angkasa
Nama pengguna, diikuti titik dua
Ruang angkasa
Pesan
baris baru
Pindahkan file video yang diunduh ke /stream/video.mp4
. (Ganti file tiruan.)
Pindahkan file obrolan yang diunduh ke /stream/chat.txt
. (Ganti file tiruan.)
Jalankan node chat.mjs
untuk memulai server HTTP Node.js yang akan melayani pesan obrolan di browser Anda.
Buka index.html
di browser favorit Anda.
Jeda kapan saja. Posisi bermain diingat dan dikembalikan secara otomatis.
Gunakan watch.bat
untuk melanjutkan (melakukan langkah 4 dan 5 untuk Anda).
Untuk melihat emote saluran tertentu, Anda perlu menentukan ID saluran. Ada banyak cara untuk mengambil informasi ini, misalnya menggunakan Twitch Channel ID Finder.
Emote ini akan diunduh secara otomatis setiap kali server obrolan dimulai. Pastikan Anda menyesuaikan variabel CHANNEL_ID
di bagian atas file sumber chat.mjs
sebelum menjalankan server.
Emote Global Twitch disediakan secara default. Namun, emote streamer eksklusif harus diberikan secara manual karena memerlukan OAuth untuk mengakses Twitch API. Setelah diautentikasi, buat permintaan dan simpan respons titik akhir sebagai
di /emotes/
. Pastikan Anda menyesuaikan variabel CHANNEL_ID
di bagian atas file sumber chat.mjs
sebelum menjalankan server.
Buat aplikasi melalui konsol pengembang Twitch. Ini akan menghasilkan "ID Klien" dan "Rahasia Klien".
Minta token akses menggunakan client_id
dan client_secret
:
curl -L 'https://id.twitch.tv/oauth2/token' -H 'Content-Type: application/x-www-form-urlencoded' -d 'grant_type=client_credentials' -d 'client_id={{client_id}}' -d 'client_secret={{client_secret}}'
Simpan nilai access_token
dari respons.
Ambil ID saluran:
curl -L 'https://api.twitch.tv/helix/users?login={{channel_name}}' -H 'Authorization: Bearer {{access_token}}' -H 'Client-Id: {{client_id}}'
Simpan nilai data[0].id
( channel_id
) dari respons.
Ambil emote saluran:
curl -L 'https://api.twitch.tv/helix/chat/emotes?broadcaster_id={{channel_id}}' -H 'Authorization: Bearer {{access_token}}' -H 'Client-Id: {{client_id}}'
Simpan respons ke file.
Jika Anda tidak peduli dengan nama pengguna dalam obrolan, ubah variabel CHAT_USERNAMES
di file sumber index.html
menjadi false
.
CHAT_USERNAMES = true | CHAT_USERNAMES = false |
---|---|
Pemutusan hubungan singkat selama streaming langsung menyebabkan log obrolan tidak sinkron. Untuk memperbaiki masalah tersebut, Anda dapat menyesuaikan variabel CHAT_OFFSET
di file sumber index.html
. Refresh halaman web untuk menerapkan perubahan.
Jika Anda menggunakan ekstensi adblock di browser Anda, seperti uBlock Origin, komunikasi server obrolan mungkin diblokir. Hal ini terjadi karena pemblokiran koneksi dari localhost
. Masukkan localhost:8787
ke daftar putih atau nonaktifkan ekstensi untuk sementara.