昨天,我先替聽眾比較訂下資料契約:比較之前,至少要知道藝人、期間、計算規則、資料持有人,以及比較的母體是誰。
今天輪到其中一個看似簡單的欄位:藝人。
我的目標是知道,自己聽 YOASOBI 的程度,放到其他平台聽眾之中,究竟能排在哪裡。但在開始加總之前,還有一個更基本的問題:哪些紀錄,真的應該歸到 YOASOBI?
原本我以為,看到藝人名字就能處理。真正拿到來源資料後,事情並沒有這麼直接。
同一個頻道,出現兩種不同答案
今天取得的公開 YouTube 資料中,有兩個很適合放在一起看的項目。
第一個是 YOASOBI〈アイドル〉的官方音樂影片。它的題名明確寫了 YOASOBI,頻道名稱也顯示 YOASOBI。
第二個是〈幽霊東京 / Ayase (self cover)〉。它的題名明確寫了 Ayase,但這次取得的頻道名稱,同樣顯示 YOASOBI。
兩個項目的發布者網址也是相同的。
如果我的程式只是把頻道名稱複製到藝人欄位,這兩個項目就會全部算到 YOASOBI。這樣一來,Ayase 的個人作品就被悄悄塞進團體的紀錄。
問題不是字串清得不夠乾淨,而是我把兩種不同的資訊當成同一件事:誰上傳,並不等於作品以誰的名義署名。
一般頻道也可能發布 YOASOBI 的作品
反過來看,頻道名稱不是 YOASOBI,也不代表這個項目不屬於 YOASOBI。
今天的案例包含〈群青 / THE FIRST TAKE〉與〈夜に駆ける / THE HOME TAKE〉。來源題名明示 YOASOBI,但發布頻道是 THE FIRST TAKE。
因此,我不能把 THE FIRST TAKE 當成歌手,也不能因為頻道名稱和目標藝人不同,就直接排除這些項目。
這裡同時保留了另一條界線:把藝人署名判斷為 YOASOBI,不代表現場錄音就能和錄音室版本視為同一筆歌曲身分,更不代表它已經符合後續排名的計數規則。版本怎麼處理,是下一步的工作。
Topic 看起來很明確,為什麼還要保留未知?
今天還查到一個〈アイドル〉項目,發布者是「YOASOBI - Topic」。
很容易想到的做法,是把最後的「- Topic」刪掉,剩下的就當藝人。
但這次實際取得的 YouTube oEmbed 回應,只有題名與發布者等欄位,沒有獨立的作品藝人署名欄位。我也沒有在這個案例中取得足以補足判斷的發行署名。
所以,這筆目前是 unresolved。
這不是在說它不是 YOASOBI,而是在說:目前保存的證據,還不足以讓這套規則確認。
如果因為答案看起來很明顯,就讓程式直接跨過證據缺口,之後碰到名稱相近的頻道、轉載或不清楚的署名時,也會沿用同一種猜法。
我寧願先讓未知留下來,而不是得到一張看似完整、實際上混進猜測的統計表。
合作作品不能只留第一位,也不能自動換成團體
Spotify 的公開曲目資料,這次能取得完整的藝人名單與各自的來源識別碼。
例如〈絶絶絶絶対聖域〉列出 ano、Lilas;〈ばかまじめ〉則列出 Creepy Nuts、Ayase、Lilas。
這些名單不能只留第一位,也不能因為其中有 YOASOBI 成員,就把作品直接重新命名為 YOASOBI。
即使一份合作名單同時出現兩位成員,團體仍然不是一個可以由成員名字自動加出來的署名。
另一個案例的曲目題名包含幾田りら,但來源的作品藝人欄位實際列的是 Mobile Melody Series。這也提醒我,題名中的人名可能是在描述原唱或其他關係,不能直接蓋過明確的藝人欄位。
今天採用的政策很單純:先看這個來源項目明示的作品藝人署名。作曲者、上傳者、個人身分與團體身分,不在沒有依據的情況下互相替換。
今天實際做出的 baseline
今天由 ChatGPT 整理實際來源回應、逐例標註歸屬依據,再把判斷接成可重現的程式。
它不是每次把歌名交給模型猜,而是使用已覆核的來源項目識別碼,查詢固定的歸屬證據。遇到未覆核項目、來源網址與識別碼不一致,或原始藝人資料和證據衝突,就停在 unresolved。
結果另外存成歸屬紀錄,不覆寫原始聆聽事件。原本的歌名、頻道、時間與播放秒數仍然保留;YouTube 不知道的秒數也沒有被補成歌曲長度。使用者的 YouTube 和朋友的 Spotify,仍然是不同的資料持有人。
今天的問題集一共有 12 個真實公開曲目案例:YouTube 6 個、Spotify 6 個。依照這份明示署名政策,結果是 4 個歸屬 YOASOBI、7 個歸屬其他藝人,另有 1 個證據不足。
這不是在說我今天聽了 12 首歌,也不是我的私人紀錄統計,更不是整個音樂資料庫的辨識成功率。這些是刻意選來測試常見錯誤的公開案例。
今天完成的範圍,和還不能宣稱的事
這次有找到先前提供的私人資料檔案紀錄,但工具無法取出原始檔案內容,因此沒有重新處理使用者與朋友的完整歷史。
公開曲目案例可以驗證歸屬邏輯,卻不能代替私人資料的全量 coverage 驗收。我把這兩件事分開記錄,沒有把公開曲目包裝成真實聆聽事件。
事件接線另外使用明確標示的合成資料測試,檢查不同持有人是否分開、未知秒數是否保留,以及重複事件有沒有被偷偷刪掉。新增 20 項測試,加上既有測試,共 208 項通過。
不過,測試通過也不表示任何歌名都能被正確辨識。今天的 baseline 仍是有限的已覆核案例集,集合之外的項目不會自動變成已確認。
先把「算誰的」說清楚,再談「算多少」
今天沒有產生新的名次,也沒有開始把不同平台的活動加在一起。
但這一步很重要:如果最前面的藝人歸屬已經錯了,後面的加總、百分位與排名,就算數學公式完全正確,也只是在精確地計算錯誤的資料。
下一步才是處理歌曲版本:同名作品、現場演出、翻唱與其他版本,哪些有證據能放在一起,哪些必須分開。
先讓每一筆資料知道自己為什麼被納入、為什麼被排除,以及什麼仍然未知,再往聽眾比較前進。