如何获取被 YouTube 缩短显示的完整 url?

2020-05-04 17:26:15 +08:00
 microka

比如 https://www.youtube.com/watch?v=XcQIXKbGios 这个视频简介部分

You may download this video for personal use only from https://proartinc.net/shop/4k-films/4...

这里

https://proartinc.net/shop/4k-films/4...

实际链接为

https://proartinc.net/shop/4k-films/4k-hd-films/8k-kgalagadi-np-2/

但被 YouTube 缩短显示为

https://www.youtube.com/redirect?event=video_description&v=XcQIXKbGios&q=https%3A%2F%2Fproartinc.net%2Fshop%2F4k-films%2F4k-hd-films%2F8k-kgalagadi-np-2%2F&redir_token=......

https%3A%2F%2Fproartinc.net%2Fshop%2F4k-films%2F4k-hd-films%2F8k-kgalagadi-np-2%2F

进行 decode 解码即可得到实际目标 ur

https://proartinc.net/shop/4k-films/4k-hd-films/8k-kgalagadi-np-2/

请问各位有没有相应的脚本或 chrome 扩展能便捷获取解码后的真实 url ?

1690 次点击
所在节点    YouTube
9 条回复
shansing
2020-05-04 17:28:56 +08:00
你把这叫“缩短”啊……
感觉脚本自己写也挺好写的,你都把原理分析出来了。
ipadpro4k
2020-05-04 17:29:07 +08:00
用 youtube-dl 不好吗
microka
2020-05-04 17:36:55 +08:00
@shansing 只懂思路,对脚本代码一窍不通😂
@ipadpro4k 我需求是获取 YouTube 站外 url,youtube-dl 在这怎么用?
CrabAss
2020-05-04 17:49:59 +08:00
greasyfork 上我记得有个 anti redirect 的脚本,可能支持 YouTube
imdong
2020-05-04 17:50:42 +08:00
document.querySelectorAll('a').forEach((item) => {
if (item.href.indexOf('/redirect?') > 0) {
item.href = decodeURIComponent(item.href.match(/(\?|&)q=([^&$]+)/)[2]);
console.log(item.href)
}
})


多简单,放进 UserScript 就能用。
crab
2020-05-04 17:55:19 +08:00
通过类名枚举全部链接,判断头部是 redirect 再提取 q 参数的内容转换?
CrabAss
2020-05-04 17:55:25 +08:00
microka
2020-05-04 17:56:33 +08:00
@CrabAss 找到了 https://greasyfork.org/scripts/11915-anti-redirect
真的有效,非常感谢!!
microka
2020-05-04 18:00:09 +08:00
@imdong 我把您这串代码放进暴力猴里,还是不行,不知是哪里没弄好。不过找到 anti-redirect 这个脚本已经解决了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/668477

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX