VOD ส่วนใหญ่บน Twitch จะหายไปไม่ช้าก็เร็ว เนื่องจากความพร้อมใช้งานหมดอายุหรือเนื่องจากถูกลบออกอย่างชัดเจน ดังนั้นหากคุณดู VOD ไม่จบทันเวลา เนื้อหาก็จะหายไป คุณสามารถดาวน์โหลดวิดีโอได้ แต่แชทล่ะ? "Twitch VOD Offline Viewer" แก้ปัญหานี้ได้ เพียงดาวน์โหลดวิดีโอ + แชทแล้วเล่นได้เหมือน VOD ปกติเมื่อใดก็ได้ แม้จะออฟไลน์อยู่ก็ตาม¹
¹ อิโมติคอนในการแชทจะปรากฏขึ้นเมื่อสามารถดาวน์โหลดรูปภาพได้เท่านั้น ดังนั้นเพื่อที่จะดูอิโมติคอน คุณยังต้องมีการเชื่อมต่ออินเทอร์เน็ต
รันไทม์ของ Node.js
คำแนะนำ: ใช้ TwitchDownloader เพื่อดาวน์โหลดวิดีโอที่ต้องการ ดูแท็บ "ดาวน์โหลด VOD" แต่เครื่องมืออื่นๆ ในการดาวน์โหลด VOD ก็ทำได้เช่นกัน
ตัวแปลงสัญญาณใดๆ ที่สนับสนุนโดยแท็ก ของเบราว์เซอร์ของคุณ
คำแนะนำ: ใช้ TwitchDownloader เพื่อดาวน์โหลดแชทที่เกี่ยวข้อง โปรดดูแท็บ "ดาวน์โหลดแชท" เลือก "ข้อความ" และ "ญาติ"
หากคุณสร้างไฟล์แชทด้วยวิธีอื่น รูปแบบที่ต้องการคือ:
[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
การประทับเวลาในวงเล็บเหลี่ยม (ชั่วโมงอาจเป็นตัวเลขหนึ่งหรือสองหลักก็ได้)
ช่องว่าง
ชื่อผู้ใช้ ตามด้วยเครื่องหมายโคลอน
ช่องว่าง
ข้อความ
ขึ้นบรรทัดใหม่
ย้ายไฟล์วิดีโอที่ดาวน์โหลดไปที่ /stream/video.mp4
(แทนที่ไฟล์จำลอง)
ย้ายไฟล์แชทที่ดาวน์โหลดมาไปที่ /stream/chat.txt
(แทนที่ไฟล์จำลอง)
รัน node chat.mjs
เพื่อเริ่มเซิร์ฟเวอร์ Node.js HTTP ที่จะให้บริการข้อความแชทในเบราว์เซอร์ของคุณ
เปิด index.html
ในเบราว์เซอร์ที่คุณชื่นชอบ
หยุดชั่วคราวได้ตลอดเวลา ตำแหน่งการเล่นจะถูกจดจำและเรียกคืนโดยอัตโนมัติ
ใช้ watch.bat
เพื่อดำเนินการต่อ (ทำขั้นตอนที่ 4 และ 5 ให้คุณ)
หากต้องการดูอิโมติคอนเฉพาะช่อง คุณจะต้องระบุรหัสช่อง มีหลายวิธีในการเรียกข้อมูลนี้ เช่น การใช้ Twitch Channel ID Finder
อิโมติคอนเหล่านี้จะถูกดาวน์โหลดโดยอัตโนมัติทุกครั้งที่เซิร์ฟเวอร์แชทเริ่มทำงาน ตรวจสอบให้แน่ใจว่าคุณได้ปรับตัวแปร CHANNEL_ID
ที่ด้านบนสุดในไฟล์ต้นฉบับ chat.mjs
ก่อนที่จะรันเซิร์ฟเวอร์
อิโมติคอน Twitch ทั่วโลกมีให้ตามค่าเริ่มต้น อย่างไรก็ตาม จะต้องจัดเตรียมอิโมติคอนสตรีมเมอร์พิเศษด้วยตนเอง เนื่องจากต้องใช้ OAuth เพื่อเข้าถึง Twitch API เมื่อตรวจสอบสิทธิ์แล้ว ให้ส่งคำขอและบันทึกการตอบกลับปลายทางเป็น
ใน /emotes/
ตรวจสอบให้แน่ใจว่าคุณได้ปรับตัวแปร CHANNEL_ID
ที่ด้านบนสุดในไฟล์ต้นฉบับ chat.mjs
ก่อนที่จะรันเซิร์ฟเวอร์
สร้างแอปผ่านคอนโซลนักพัฒนา Twitch ซึ่งจะให้ผลลัพธ์เป็น "Client-ID" และ "Client-Secret"
ขอโทเค็นการเข้าถึงโดยใช้ client_id
และ 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}}'
เก็บค่าของ access_token
จากการตอบกลับ
ดึงข้อมูล ID ของช่อง:
curl -L 'https://api.twitch.tv/helix/users?login={{channel_name}}' -H 'Authorization: Bearer {{access_token}}' -H 'Client-Id: {{client_id}}'
เก็บค่าของ data[0].id
( channel_id
) จากการตอบกลับ
รับอิโมติคอนของช่อง:
curl -L 'https://api.twitch.tv/helix/chat/emotes?broadcaster_id={{channel_id}}' -H 'Authorization: Bearer {{access_token}}' -H 'Client-Id: {{client_id}}'
บันทึกการตอบกลับไปยังไฟล์
หากคุณไม่สนใจชื่อผู้ใช้ในการแชท ให้เปลี่ยนตัวแปร CHAT_USERNAMES
ในไฟล์ต้นฉบับ index.html
เป็น false
CHAT_USERNAMES = true | CHAT_USERNAMES = false |
---|---|
การตัดการเชื่อมต่อช่วงสั้นๆ ในระหว่างสตรีมสดทำให้บันทึกการแชทไม่ซิงค์กัน หากต้องการแก้ไขปัญหาดังกล่าว คุณสามารถปรับตัวแปร CHAT_OFFSET
ในไฟล์ต้นฉบับ index.html
รีเฟรชหน้าเว็บเพื่อใช้การเปลี่ยนแปลง
หากคุณใช้ส่วนขยาย adblock ในเบราว์เซอร์ของคุณ เช่น uBlock Origin การสื่อสารของเซิร์ฟเวอร์แชทอาจถูกบล็อก สิ่งนี้เกิดขึ้นเนื่องจากการบล็อกการเชื่อมต่อจาก localhost
อนุญาต localhost:8787
หรือปิดใช้งานส่วนขยายชั่วคราว