MON · 23 APR 2026 · JST
VOL. XV · NO. 001
A BROADSHEET OF CRAFT & CODE · FOUNDED 2008
§ V · ESSAY
· #STREAMING · PUBLISHED ON JANUARY 10, 2026 ·
FILED IN FUKUOKA
STREAMING

World's First YouTube Music Live Radio Interactive Channel

The most groundbreaking innovation of this project is the world's first real-time rating system for YouTube live chat. Until now, there has never been a tool that allows streamers to create a music radio driven by audience votes on YouTube Live. Viewers only need to type simple keywords in the chat room to instantly influence the algorithmic weight of the playlist, allowing their favorite songs to appear more frequently and their disliked songs to gradually fade away. This interactive model transforms passive viewing into active participation, fundamentally changing the game rules of music live broadcasts.

BY KAZAMI · 風PUBLISHED ON JANUARY 10, 2026APPROX. 3 MIN READ44 VIEWS
World's First YouTube Music Live Radio Interactive Channel
◆ COVER ART · FIG. 01PUBLISHED ON JANUARY 10, 2026
LISTEN TO THIS ARTICLE
English

World's First YouTube Music Live Radio Interactive Channel

00:0000:00

First, this is a commissioned project.

Project Overview

YouTube Stream is a web-based YouTube Live streaming control panel similar to a simplified version of OBS Studio. It allows users to upload video and audio files through a browser interface and control the live stream to YouTube Live, achieving 24/7 uninterrupted automated broadcasting.

Technical Architecture

the front end uses Next.js 15 with React 19 and Tailwind CSS, adopting an App Router architecture. The back end is developed using Go 1.23 language and gin web framework. The database uses lightweight SQLite and enables WAL mode to optimize concurrency performance. The streaming core handles video and audio encoding and RTMP output through FFmpeg. The entire project is containerized with Docker Compose and deployed on a DigitalOcean host with 4 cores and 8GB of memory.

Key Features

The streaming control feature allows users to select a video file as a background image, along with an audio playlist for streaming. The video will loop indefinitely, while the audio will play according to the set pattern, either sequentially or weighted randomly.

Media management functionality supports uploading MP4 videos and various audio formats. The system automatically detects file duration and saves relevant information. Users can create multiple playlists, adding audio tracks to the playlists and setting different weights for each track.

The chat room integration feature periodically polls the YouTube Live Chat API to retrieve viewer messages and real-time pushes them to the front end via WebSocket. The system automatically identifies viewers' likes or dislikes, supporting keyword recognition in traditional Chinese, English, and Japanese.

The statistics feature records the play count, likes, and dislikes for each audio track and offers CSV export functionality.

Unique Features

The weighted random playback algorithm is the core highlight of this project. Each audio track has a basic weight, while the effective weight is dynamically adjusted based on audience feedback, calculated by the formula: basic weight plus likes minus dislikes. The probability of playback is directly proportional to the effective weight, meaning that the more popular the audio, the more frequently it will be played, forming an adaptive playback system driven by audience votes.

The real-time dynamic overlay function uses FFmpeg's drawtext filter to display the currently playing audio name and cumulative likes in real-time on the live screen. When a viewer sends feedback, a thank-you message briefly appears on the screen, automatically disappearing after five seconds, allowing viewers to immediately see that their vote is received.

The anti-abuse mechanism ensures fairness in the voting system. Each viewer can only cast one vote per audio track, with a user cooldown time and voting limits per track. The system also filters out messages sent by bot accounts to avoid affecting the statistics.

Distinctiveness

The most groundbreaking innovation of this project is the world's first real-time rating system for YouTube live chat. Until now, there has never been a tool that allows streamers to create a music radio driven by audience votes on YouTube Live. Viewers only need to type simple keywords in the chat room to instantly influence the algorithmic weight of the playlist, allowing their favorite songs to appear more frequently and their disliked songs to gradually fade away. This interactive model transforms passive viewing into active participation, fundamentally changing the game rules of music live broadcasts.

Traditional music live streams could only play in one direction, and viewers' preferences were completely ignored. However, this system allows every viewer to become a co-curator of the program, instantly shaping the playback content through collective intelligence. Imagine a 24-hour uninterrupted music channel, with its playback order not coldly determined by algorithms, but stacked up through real votes from the listening audience. This is an unprecedented democratic attempt in the field of music live streaming.

Seamless track switching technology ensures that this vision is steadily realized. When one audio track finishes playing, the system automatically starts a new FFmpeg process to play the next one, while the video continues to loop uninterrupted. This design allows streaming to run continuously for 24 hours without manual intervention.

Complete OAuth integration allows users to log in through their Google accounts, automatically managing the YouTube API's access token and refresh token, refreshing them five minutes before expiration to ensure uninterrupted operation over long periods due to authentication issues.

A reminder message system automatically sends a reminder message to the chat room at the start of the stream and every six hours to inform viewers how to vote using keywords, increasing interaction participation.

WebSocket real-time communication allows the front end to receive stream status updates every two seconds, including the currently playing track, stream health indicators like bit rate and frame rate, and reconnection counts. Chat messages are also pushed in real-time via WebSocket without the need for the front end to actively poll.

API quota optimization is an important consideration during actual operations. The YouTube Data API has a daily quota limit of 10,000 units, and this project sets the chat polling interval to 60 seconds, with each call consuming 5 units. Over the course of a day, approximately 7,200 units are consumed, leaving enough buffer space to handle other API operations.

<Gallery images={[ { src: "https://kazami.me/storage/posts/youtube-streaming-panel/zh-tw/1768053863005-c8d59845-a651-4f8c-8f85-9734865b8c8b.png", alt: "youtube-streaming-panel-zh-TW-gallery-1" }, { src: "https://kazami.me/storage/posts/youtube-streaming-panel/zh-tw/1768053864117-0457fcb4-0820-4c84-a73e-5a6cf48881bb.png", alt: "youtube-streaming-panel-zh-TW-gallery-2" }, { src: "https://kazami.me/storage/posts/youtube-streaming-panel/zh-tw/1768053864707-1a9c7d5e-da3b-409c-9554-479886853b38.png", alt: "youtube-streaming-panel-zh-TW-gallery-3" }, { src: "https://kazami.me/storage/posts/youtube-streaming-panel/zh-tw/1768053865361-2ef8d82e-d8d0-4235-b0d6-73b389774e4c.png", alt: "youtube-streaming-panel-zh-TW-gallery-4" }, { src: "https://kazami.me/storage/posts/youtube-streaming-panel/zh-tw/1768053866039-1155811f-12c0-40ce-a247-d24038764057.png", alt: "youtube-streaming-panel-zh-TW-gallery-5" }, { src: "https://kazami.me/storage/posts/youtube-streaming-panel/zh-tw/1768053866677-150d1bdb-aea9-4d6a-92d2-106042964d56.png", alt: "youtube-streaming-panel-zh-TW-gallery-6" }, { src: "https://kazami.me/storage/posts/youtube-streaming-panel/zh-tw/1768053867554-44950b75-0260-40db-829d-96e62a1cb920.png", alt: "youtube-streaming-panel-zh-TW-gallery-7" }, { src: "https://kazami.me/storage/posts/youtube-streaming-panel/zh-tw/1768053868170-dff5ddfe-9448-4a56-8e92-c67a378d329c.png", alt: "youtube-streaming-panel-zh-TW-gallery-8" }, { src: "https://kazami.me/storage/posts/youtube-streaming-panel/zh-tw/1768053868846-2f4283ce-605d-4d47-a8b4-b18dc0dbfc9e.png", alt: "youtube-streaming-panel-zh-TW-gallery-9" }, { src: "https://kazami.me/storage/posts/youtube-streaming-panel/zh-tw/1768053869522-0356dc50-d6b9-4c6e-a3bd-59a2ac9a563a.png", alt: "youtube-streaming-panel-zh-TW-gallery-10" } ]} />

BACK TO BLOG LIST◎ END OF ARTICLE
COMMENTS00 FILED
LOADING COMMENTS...
✎ WRITE A LETTER

◆ PROTECTED BY reCAPTCHA v3 · PRIVACY · TERMS