切換
舊版
前往
大廳
主題

【巴哈JS腳本】動畫瘋資訊+ 顯示動畫的聲優與主題曲資訊

貝果 | 2023-01-15 00:19:08 | 巴幣 460 | 人氣 246

安裝流程
step 1:安裝Tampermonkey
官網找安裝
或是Chrome商店安裝
(請務必使用Tampermonkey,其他腳本管理軟體未經測試不保證能執行。)

step 2:安裝腳本
點安裝腳本 > 安裝

功能敘述
  懶人包:裝了本腳本後動畫瘋會出現CV與主題曲資訊

  載入動畫瘋的影片網頁後,會自動在作品類型下方額外顯示聲優與主題曲的資訊以及其資料來源,並且聲優會附上其wiki連結,主題曲則會附上對應的Youtube搜尋連結以便查閱更多相關資訊。
Lycoris Recoil第一集為例,會顯示這樣的畫面
  此外此腳本還有一個額外的選用功能,假如你不希望每次都自動抓取,你可以執行以下步驟:
1. 點擊Tampermonkey圖示
2. 點擊設定為手動執行
如此一來會出現一個按鈕可供點擊,按下去後才會開始獲取資訊。

更新紀錄
1.0:初版

後面的內容偏碎唸,沒有興趣的可以跳到後記。
心得
  最初原本只是覺得每次猜角色聲優配音的時候要重複去wiki找聲優和歌名以及這樣的步驟十分麻煩而已,所以才想簡單做一個腳本去自動化這項功能,結果發現這項功能異常的困難,首先要找到一個網站提供大量固定格式的cast列表與主題曲列表,原本以為可以勝任的wiki或萌娘都因為格式太過於多變而捨棄從他們那邊抓資料,後來轉而抓anidb這個英文網站,但發現太容易因為過量請求而被ban了,後來發現anidb也只是從他站抓資料刊登而已,其中syoboi以及allcinema是最可靠的兩個網站,後來就只在這兩站抓資料了。
  抓資料的過程中又遇到了allcinema需要以API呼叫的形式去抓部份資料的難題,除了必須手動添加必要的request header外,還發生了偶爾能抓到偶爾不能的詭異現象,在經過數天的掙扎後發現是僅有Firefox在隱私模式下需要不同的帶特定的參數,而其他情況下帶了反而會偶爾抓不到,最後終於克服了這項關卡。
  後面就是越來越多的細節累積,像是使用和原生差不多的排版,使用wiki的API來連結到該聲優的中文/日文wiki頁面,使用動畫官網取代動畫名去查詢cast/主題曲資訊以提高精確度,直到現在已經可以以蠻高的準確度找到正確的資訊,並且連結到正確的wiki,完成度是一開始始料未及的,開發風格也有別與過去的腳本,感覺有些成長了。

技術細節
  整體的程式邏輯是這樣的,在cal.syoboi.jp或www.allcinema.net取得動畫的cast/主題曲資訊,將這些資訊整理成指定的格式後向wiki API請求出各聲優的wiki頁面,然後再顯示到動畫瘋頁面上。而取得資訊的部份又分為四個嘗試步驟:
  1. 以動畫官網在cal.syoboi.jp站內搜尋
  2. 以日文動畫名在Google搜尋www.allcinema.net的頁面
  3. 以英文動畫名在Google搜尋www.allcinema.net的頁面
  4. 以日文動畫名在Google搜尋cal.syoboi.jp的頁面
依序執行1~4步驟,任何一個步驟有找到資訊頁面就會爬取頁面的內容,順序上會這樣安排主要是因為1.的方法不但成功率高,而且即使沒成功找到該動畫的頁面也不會回報錯誤的頁面回來,Google搜尋的一個很大的弱點就是當你搜某某動畫第二季時有不小的機率會搜到第一季,例如在開發初期有一個很尷尬的問題是LLSuperstar會搜到LLSunshine去,這是十分令人難以接受的錯誤,所幸這點在新的方法:以動畫官網在syoboi站內搜尋後以動畫的放映時間過濾出正確的搜尋結果,被發明之後得到了改善,這項方法也降低了Google搜尋的使用率,因為過多的Google搜尋會導致該使用者的IP被Google暫時封鎖,所以降低這點是非常有幫助的。而由於1.失敗的很大一部份原因是因為該動畫沒有在日本電視台播放(syoboi主要是以電視台播放情報為主的網站),自然也不會在該網站上有頁面,所以2.3.就直接去allcinema搜尋,allcinema是包含了電影在內所有的劇集的網站,能彌補syoboi的不足之處,最後才保底再回去syoboi搜尋,而如果全都落空的話就會顯示「無法取得資料」作為表示。
  能改進的部份主要有幾點:
  • 如何獲得更高的資訊搜尋正確率,有幾個搜尋失敗的範例:A B C,A是由於巴哈的資料庫沒有官網與日文片名的關係,使用英文片名的搜尋也失敗而導致了無法取得資料的結果;BC是因為方法1失敗而方法2搜尋到了錯誤的allcinema頁面所導致。
  • 提供更多大家想知道的動畫資訊(限於syoboi和allcinema有的資訊內)
  • 一些因為程式錯誤而無法正確呈現結果的動畫回報
  • 繁中的cast表來源網站(其資料格式必須要固定)
  如果有什麼想法都歡迎和我提出。

銘謝
感謝Roma提供關於資料來源的建議以及API呼叫的建議
感謝凜空的測試與討論
感謝炒麵的時相討論
感謝Howard提供了一個絕妙的點子讓搜尋資料來源的精度大幅提昇
感謝圖書館員提供了開發效率提昇的建議以及配色建議
感謝yu指出我的程式語法錯誤

後記
如果有發現問題再告訴我
例如某些動畫顯示了錯誤訊息或沒有任何新增文字
或是某些資訊是在資料來源有但是腳本卻漏掉沒有新增到頁面上
也歡迎裝我寫的其他腳本

創作回應

阿~嗯 那裡不行
好用
2023-08-28 10:41:55

相關創作

更多創作