Open i1itione opened 3 years ago
明天我看看,目前你可以嘗試使用手機端解析
原來和使用的解析模式有關啊!我之前有把 use mobile api 設為 true, 剛才試了一下改回預設值的 false 就可以正常下載影片了。
@kirbyloco mobile api 解析似乎加了限制,你能幫忙看看麽?
剛測試一下,mobile API的廣告時間被強制改回25以上, 也有可能是APP的規則改了
@kirbyloco 嘗試將配置的 mobile_ads_time
改成 25 確實就可以使用 mobile api 解析了,目前簡單的修補就是把 mobile_ads_time
的默認配置改成 25(不過這似乎就失去了使用 mobile api 解析的意義了)
目前確定沒法再使用 mobile api 縮短廣告時間了是嗎?那考慮可以做成備用解析,當Web解析失敗的時候自動切換。
另外 APP request 的完整 header 是什麽樣的,目前使用 mobile api 的 header 感覺破綻有點大 (比如 UA 還是用的瀏覽器)
@miyouzi 確定不能用mobile API縮短廣告時間,目前mobile API唯一的優勢只有解析動畫的時候會比較快 我自己用mobile API有改過UA使用
抓包顯示如下:
GET /mobile_app/anime/v2/m3u8.php?sn=19183&device=056b317cd7853db5d825ccd83448211b95e393e63d3e4e515fab41948735 HTTP/1.1
User-Agent: Bahadroid (https://www.gamer.com.tw/)
X-Bahamut-App-InstanceId: cAJB-HprGUg
X-Bahamut-App-Android: tw.com.gamer.android.animad
X-Bahamut-App-Version: 177
Accept-Encoding: br,gzip
Host: api.gamer.com.tw
Connection: Keep-Alive
Cookie: nologinuser=0563bed83d6aa4b866899ad01f869e5dfc30ad298d0c8e3d5fab41948776; __cfduid=dc04d02a84939bc5875409b25bbc52d211605058959
@kirbyloco 那使用 mobile api 就照著這個來吧
if self._settings['use_mobile_api']:
header = {
"User-Agent": "Bahadroid (https://www.gamer.com.tw/)",
"X-Bahamut-App-InstanceId": "cAJB-HprGUg",
"X-Bahamut-App-Android": "tw.com.gamer.android.animad",
"X-Bahamut-App-Version": "177",
"Accept-Encoding": "br,gzip",
"Connection": "Keep-Alive"
}
else:
header = {
"user-agent": ua,
"referer": ref,
"accept-language": lang,
"accept": accept,
"accept-encoding": accept_encoding,
"cache-control": cache_control,
"origin": origin
}
不過UA涉及到cookie刷新,順帶一提你的cookie是從APP抓的嗎?
@miyouzi 帳號暫時被BAN了,可能要晚點測試, 但我猜cookies刷新應該可以直接用手機的UA。
@kirbyloco 其實之前的 commit 就寫好了使用 mobile api 解析時, cookie 被重置的話自動改回 web 解析的 header 去嘗試刷新 cookie (刷新完 header 再改回來),但還沒怎麽測試。
PS:這樣的話其實有被 ban 的風險,因爲動畫瘋是可以知道你從 web 取來的 cookie 去用在了 mobile api 上。
@miyouzi 如果是這個問題,其實手機端的登入非常簡單, 可以寫個addons,然後再把cookies取出來。
@miyouzi 如果是這個問題,其實手機端的登入非常簡單, 可以寫個addons,然後再把cookies取出來。
@kirbyloco 是什麽樣的 addons?(Xposed?Root?還是用 APP 的登錄 api?)
@miyouzi 我沒那麼厲害啦!(Xposed和Root的完全不會) 是用APP的登入API,可以參考 gamer_autosignin 登入的部分 也是參考別人的部分。
@kirbyloco 瞭解了,那有空可以做一個小工具用來取得 APP cookie。(比如用命令行模式調用 aniGamerPlus.py --get_app_cookie
然後提示用戶輸入 UID 和 PASSWD)
要做成自動切換解析的話 APP cookie 可能還得單獨出來一份 app_cookie.txt
問題描述
在這裏詳細説明你遇到了什麽問題
無法順利下載影片,log 裡有顯示錯誤訊息。
如下:
2020-11-10 23:22:33 下載異常: sn=18460 發生未知錯誤: 'src' 2020-11-10 23:22:33 下載異常: sn=18460 異常詳情: Traceback (most recent call last): File "aniGamerPlus.py", line 228, in worker File "Anime.py", line 801, in download File "Anime.py", line 472, in __get_m3u8_dict File "Anime.py", line 422, in parse_playlist KeyError: 'src'
應該是最近這一、兩天才發生的現象。