LuckyPuppy514 / Play-With-MPV

使用 MPV 播放网页中的视频
MIT License
509 stars 14 forks source link

mpv会把解析链接的+号识别成空格导致无法播放 #157

Closed IKUNNUKI closed 3 weeks ago

IKUNNUKI commented 3 weeks ago

例如: 原链接:https://mds4jwtjur.senhewenhua.com/6ay854Gt5LmL5YiDIOafseiuree7g+evhyDnrKwx6ZuGLm1wNA==.mp4?verify=1718780491-sQPRf11ZUwiDyN80DFH3YiCPrA0cxem16BPOSZE93x4%3D

MPV打开指令:mpv://%22https://mds4jwtjur.senhewenhua.com/6ay854Gt5LmL5YiDIOafseiuree7g+evhyDnrKwx6ZuGLm1wNA==.mp4?verify%3D1718780491-sQPRf11ZUwiDyN80DFH3YiCPrA0cxem16BPOSZE93x4%253D%22%20--force-media-title=%22TV%E5%8A%A8%E7%94%BB%E3%80%8A%E9%AC%BC%E7%81%AD%E4%B9%8B%E5%88%83%20%E6%9F%B1%E8%AE%AD%E7%BB%83%E7%AF%87%E3%80%8B%E7%AC%AC01%E9%9B%86%E5%9C%A8%E7%BA%BF%E8%A7%82%E7%9C%8B-%E6%AC%A1%E5%85%83%E5%9F%8E%E5%8A%A8%E7%94%BB%20-%20%E5%85%85%E6%BB%A1%E5%AF%B9%E5%8F%A6%E4%B8%80%E4%B8%AA%E4%B8%96%E7%95%8C%E7%9A%84%E6%97%A0%E5%B0%BD%E5%B9%BB%E6%83%B3%EF%BC%81...%22

打开后报错内容: [stream] Failed to open https: //mds4jwtjur.senhewenhua.com/6ay854Gt5LmL5YiDIOafseiuree7g evhyDnrKMx6ZuGLm1wNA== .mp4?verify=1718780491-sQPRf11ZUwiDyN8ODFH3YiCPrABcxem16BPOSZE93×4%3D. lytdl_hocok] ERMoRk: [ geneni c] lone :1UIneble to domnlod webpege: HTP EFror 403: Forbiden (caused by AiTPEFror 403'rorbiden'); lezse report this issle on httst:/github.com/yt-dlp/yt-dp/issues?q= , filling out the appropriate issue template.Confinm you are on the latest version using yt-dlp -u [ytdl_hook] youtube-dl failed: unexpected error occurred(图片转的文字,可能会识别不准,我不会导出控制台文本awa)

不难看出在“6ay854Gt5LmL5YiDIOafseiuree7g evhyDnrKMx6ZuGLm1wNA”中间的+号变成了空格,可以将其改成%2B,但我不知道怎么用代码自动实现wwwwwwww

IKUNNUKI commented 3 weeks ago

次元城看不了的解决方法: 第120、121行把原本的cycdm01.top改成.cycanime.com 3789行到3828行请一字不落地覆盖: // ✅ https://www.cycanime.com/watch/3388/1/1.html name: "次元城动漫", home: ["https://www.cycanime.com"], regex: /^https:\/\/www.cycanime.com\/watch\/.*/g, handler: class Handler extends BaseHandler { constructor() { super(); this.addIframeListener(); } }, }, { name: "次元城动漫播放器", regex: /^https:\/\/player.cycanime.com\/\?url=.+/g, handler: class Handler extends BaseHandler { constructor() { super(); this.addTopListener(); } async parse() { let url = this.videoParser(); if (url) { let index = url.indexOf("?"); if (index != -1) { // 获取 ? 之前的部分 let beforeQuery = url.substring(0, index); // 如果 ? 之前包含 + 号,对 + 号进行编码 if (beforeQuery.includes("+")) { beforeQuery = beforeQuery.split("+").join("%2B"); } // 获取 ? 之后的部分,并对其进行编码 let queryParams = encodeURIComponent(url.substring(index + 1)); // 组合成新的URL url = beforeQuery + "?" + queryParams; } this.media.setVideoUrl(url); } } }, },