OBS plugin obs-text 顯示播放中音樂, display playing music
只適用Microsoft Windows
透過修改的OBS內建plugin obs-text來達成,替換掉我改過的檔案就能用了 (OBS版本差異過大時,只換檔案會無法使用)
或是用我做的OBS,整個OBS(含plugin)都換我改的 (公開程式碼,無添加惡意程式碼)
https://craftwarblog.blogspot.com/2017/09/obs-studioby-craftwar.html
使用方法
obs-text設定中選歌名模式,其他我新增的功能請參考相關文章
支援的播放器
1.瀏覽器上的
驗證可用: Firefox, Chrome, Edge(新版用Chromium做的,logo像Firefox的)
播歌的網頁必須是現在分頁 (開一個獨立視窗只開一個分頁也可以)
除了youtube以外,都需要再安裝對應的 使用者腳本(userscript)才能抓到
點進對應的usercript後,會打開github,下面有兩個站選一個你喜歡的去裝
不會用userscript的,先看 https://craftwarblog.blogspot.com/2017/11/userscript-install.html
2. 瀏覽器以外
直接支援,不像瀏覽器多數需要userscript
其他combo技巧
Youtube只播放聲音,不放畫面省資源 youtube-audio_only (點歌放youtube的也有效)
網頁播放器可搭配虛擬桌面擷取影片,讓播放器不影響工作/遊戲桌面
https://craftwarblog.blogspot.com/2019/02/win10-virtual-desktop.html
和其他軟體/方案比較
其他非整合進OBS的必須另外開程式,把歌名寫入檔案再讓OBS讀取,OBS隔一段時間就要檢查檔案是否改變 + 取得歌名的程式的額外消耗(可能也是不斷查詢的作法),消耗較多資源,更新的延遲: 程式取得歌名延遲未知 + 檔案系統最多兩秒(ntfs檔案系統,或是在fat32系統最多4秒)
我的方法歌名改變時會主動回報給OBS,不持續檢查,節省資源,更新延遲較低
比抓播放器的畫面省資源,視窗最小化也能抓到,抓畫面還需要知道歌名多長
可顯示任何長度的歌名 (用跑馬燈方式或自動換行)
注意事項
開多個播放器只會抓到其中一個 (請關掉不用的,才會去抓別的)
換播放器要讓歌名不顯示才會重抓,有這三種方式可以重置播放器選擇
如果是網頁播放器,有興趣的人可以自己寫,寫好連結給我,我可以加進清單
技術上,我是把window title改成和youtube一樣,這樣obs-text的code就不用增加,效率比較好
===忽略下面,自己用的紀錄=== 或是你對技術有興趣可以看
其他人寫抓歌名的,除了有網路API可用以外,都是抓Window title
我的方法也一樣,只是效能更高
programing related note
iTunes是UWP,顯示的歌名似乎是用畫的,無法直接用windows API抓到文字
EnumWindow/FindWinow 都只找top level window
FindWindowEx才能找其他的,應該不會有問題就沒做
OBS也是只抓top level
要改成non-active tab也抓到,技術上可以,只是懶,要讓firefox送message給OBS接
好像也有port被佔用的可能,總之懶得寫,似乎要寫成web extension不能用user script
我覺得使用者安裝設定上會更麻煩
有人建議提供選項combobox? 或下拉選單選擇開啟哪些player,目前的plugin UI限制不好做,等以後再考慮
Spotifyu要改@inject-into content
https://violentmonkey.github.io/2018/11/23/inject-into-context/
新版改用hook monitor target window title change,不用polling,減少CPU用量
歌名有改變OBS才需要去處理,大量節省資源
SetWinEventHook 不知道會不會有程式擋掉? chrome都可以應該沒問題吧?
透過修改的OBS內建plugin obs-text來達成,替換掉我改過的檔案就能用了 (OBS版本差異過大時,只換檔案會無法使用)
或是用我做的OBS,整個OBS(含plugin)都換我改的 (公開程式碼,無添加惡意程式碼)
https://craftwarblog.blogspot.com/2017/09/obs-studioby-craftwar.html
使用方法
obs-text設定中選歌名模式,其他我新增的功能請參考相關文章
支援的播放器
1.瀏覽器上的
驗證可用: Firefox, Chrome, Edge(新版用Chromium做的,logo像Firefox的)
播歌的網頁必須是現在分頁 (開一個獨立視窗只開一個分頁也可以)
除了youtube以外,都需要再安裝對應的 使用者腳本(userscript)才能抓到
點進對應的usercript後,會打開github,下面有兩個站選一個你喜歡的去裝
不會用userscript的,先看 https://craftwarblog.blogspot.com/2017/11/userscript-install.html
- YouTube
- YouTube Music
https://github.com/craftwar/userscript/tree/master/Youtube-Music-song-name-helper
- Spotify
https://github.com/craftwar/userscript/tree/master/Spotify-song-name-helper - ニコニコ動画 (Niconico)
https://github.com/craftwar/userscript/tree/master/Niconico-song-name-helper
- Nightbot AutoDJ
https://github.com/craftwar/userscript/tree/master/NightBot-song-name-helper - MooBot
https://github.com/craftwar/userscript/tree/master/MooBot-song-name-helper
2. 瀏覽器以外
直接支援,不像瀏覽器多數需要userscript
- foobar2000 v1.4 以後版本
- osu!
只有在打圖的時候會抓 - Spotify應用程式版
- iTunes
大概知道怎麼做了,暫時沒空處理
直接抓視窗畫面吧 (同樣方法無效,我還沒想出好方法,等人教我)
應該寫個iTunes plugin可以做到,這對使用者太麻煩了。等我哪天有iOS裝置(iPhone, iPad)可能會來研究更好的做法 - VLC media player
- YouTube Music Desktop (requested by
丹丹)
如果沒有YouTube Music Premium可能會抓成播放的廣告 (因為在播放廣告後title會改變)
- KMPlayer (KMP), PotPlayer
- 千千靜聽
其他combo技巧
Youtube只播放聲音,不放畫面省資源 youtube-audio_only (點歌放youtube的也有效)
網頁播放器可搭配虛擬桌面擷取影片,讓播放器不影響工作/遊戲桌面
https://craftwarblog.blogspot.com/2019/02/win10-virtual-desktop.html
和其他軟體/方案比較
其他非整合進OBS的必須另外開程式,把歌名寫入檔案再讓OBS讀取,OBS隔一段時間就要檢查檔案是否改變 + 取得歌名的程式的額外消耗(可能也是不斷查詢的作法),消耗較多資源,更新的延遲: 程式取得歌名延遲未知 + 檔案系統最多兩秒(ntfs檔案系統,或是在fat32系統最多4秒)
我的方法歌名改變時會主動回報給OBS,不持續檢查,節省資源,更新延遲較低
比抓播放器的畫面省資源,視窗最小化也能抓到,抓畫面還需要知道歌名多長
可顯示任何長度的歌名 (用跑馬燈方式或自動換行)
注意事項
開多個播放器只會抓到其中一個 (請關掉不用的,才會去抓別的)
換播放器要讓歌名不顯示才會重抓,有這三種方式可以重置播放器選擇
- 關掉再打開source的顯示 (點擊像眼睛的圖示)
- 切換到其他scene讓顯示歌名的obs-text不顯示,再切回去
- 去設定把模式改成別的再改回去按確定
如果是網頁播放器,有興趣的人可以自己寫,寫好連結給我,我可以加進清單
技術上,我是把window title改成和youtube一樣,這樣obs-text的code就不用增加,效率比較好
===忽略下面,自己用的紀錄=== 或是你對技術有興趣可以看
其他人寫抓歌名的,除了有網路API可用以外,都是抓Window title
我的方法也一樣,只是效能更高
programing related note
iTunes是UWP,顯示的歌名似乎是用畫的,無法直接用windows API抓到文字
EnumWindow/FindWinow 都只找top level window
FindWindowEx才能找其他的,應該不會有問題就沒做
OBS也是只抓top level
要改成non-active tab也抓到,技術上可以,只是懶,要讓firefox送message給OBS接
好像也有port被佔用的可能,總之懶得寫,似乎要寫成web extension不能用user script
我覺得使用者安裝設定上會更麻煩
有人建議提供選項combobox? 或下拉選單選擇開啟哪些player,目前的plugin UI限制不好做,等以後再考慮
Spotifyu要改@inject-into content
https://violentmonkey.github.io/2018/11/23/inject-into-context/
新版改用hook monitor target window title change,不用polling,減少CPU用量
歌名有改變OBS才需要去處理,大量節省資源
SetWinEventHook 不知道會不會有程式擋掉? chrome都可以應該沒問題吧?