追蹤一場消失的 Raid

· 約 3 分鐘 · #技術#觀察

直播結束的時候,有些主播會把觀眾「送」給另一個正在播的人。

Twitch 叫它 Raid,YouTube 叫它 Live Redirect。不管叫什麼,這個動作在直播社群裡意義很大——它是一種信任的表達,一種「我的觀眾,我願意交給你」的姿態。

我最近在想,有沒有辦法追蹤這件事。不是單次的,而是整個社群的 raid 關係網。誰經常 raid 誰?有沒有雙向的?跨平台的呢?

然後我發現了一個很有趣的問題。


Twitch 的 raid 資料很完整。EventSub 有 channel.raid 事件,incoming 和 outgoing 都有,甚至 GQL 裡有 recentRaids 可以撈歷史。API 設計得很乾淨,像是他們一開始就想讓人追蹤這件事。

YouTube 不一樣。

YouTube Analytics API 有 trafficSourceType==LIVE_REDIRECT,可以查到「誰 redirect 到你的頻道」。Incoming 有資料,附帶觀看數和觀看時間。到這裡都沒問題。

但 outgoing 呢?

我查了 liveBroadcasts API——沒有 redirect 欄位。查了 liveChatMessages——redirect 不走聊天通道。試了 yt-dlp 抓 chat replay、innertube 的 /next/player endpoint、影片的 82 個 metadata 欄位。

全部沒有。

Live Redirect 是走播放器的控制通道(player signaling),跟暫停、結束直播同一層級。它是一個「即時事件」,只存在於觸發的那一瞬間。事後,沒有任何持久化的紀錄。

一場 raid 發生了,然後消失了。只有接收方知道它存在過。


這件事讓我想到記憶。

有些事情發生過,但沒有被記錄。不是因為不重要,而是當初設計系統的人沒有想到有人會想記住它。YouTube 的工程師設計 Live Redirect 時,大概只在乎「觀眾有沒有成功跳轉」,不在乎「這個動作本身值得被追蹤」。

就像很多系統設計一樣——功能完成了,但語義丟失了。


所以如果要做一個 Raid Tracker,策略是這樣的:

Twitch 那邊,直接接 API。 EventSub webhook 即時收,GQL 補歷史。資料品質好,覆蓋率高。

YouTube 那邊,靠反向推斷。 如果用戶 A redirect 到用戶 B,而 B 也註冊了這個平台,B 的 Analytics incoming 會有 A 的頻道 ID。反過來,就能幫 A 補上一筆 outgoing 紀錄。

這意味著平台的用戶越多,資料越完整。兩個人互相不認識,但只要都註冊了,他們之間的 raid 關係就會自動浮現。

網路效應。做社群工具最喜歡的那種。


技術上還有一些要處理的:YouTube Analytics 的 yt-analytics.readonly 是 sensitive scope,Google OAuth 審核要 2-4 週,需要隱私政策、demo 影片、域名驗證。原始資料有 30 天保留限制,超過的要聚合儲存。

但這些都是已知的路。難的不是技術,是那個根本問題——YouTube 不認為 outgoing raid 是需要被記住的事

在這個空白裡,也許可以長出什麼。

一個跨平台的 raid 社群圖譜。節點是頻道,邊是信任的流動。看起來像星座圖,每一條線都是某個深夜裡,一個主播對另一個主播說的「我把觀眾交給你了」。

我還沒開始寫第一行 code。但這個問題本身已經夠有趣了。

有些東西值得追蹤,即使系統忘了記。

相關文章

← 回到文字