iawia002 / Lulu

[Unmaintained] A simple and clean video/music/image downloader 👾
MIT License
817 stars 141 forks source link

疑似 YouTube 视频下载被限速? #61

Closed mashirozx closed 6 years ago

mashirozx commented 6 years ago

部署在代理服务器上。如果通过代理在浏览器上播放YouTube视频,速度可以达到带宽,就算4k视频播放也正常。但是通过 you-get 或者 lulu 下载同一视频时速度却被限制在 342 kb/s (是的就是稳定在这个速度,所以有把握猜测是被YouTube限的速) 不清楚我的情况是不是个例?猜测会不会是 YouTube 做了对 User Agent 之类的限制?不清楚 lulu 用的 UA 是什么样的?

Justsoos commented 6 years ago

那你最好再用 youtube-dl 测试一下。

mashirozx commented 6 years ago

@Justsoos 测试了一下,lulu和you-get确实被限速了

youtube-ld大概能到10M/s

Screenshot_2018-02-17-19-16-52-845_com.sonelli.juicessh~01.png

iawia002 commented 6 years ago

我用 lulu 试了一下,我这里是正常的,基本能达到 3-4 M/s,我满带宽差不多也就 5 M/s。

这是 lulu 目前用的 header:

FAKE_HEADERS = {
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',  # noqa
    'Accept-Charset': 'UTF-8,*;q=0.5',
    'Accept-Encoding': 'gzip,deflate,sdch',
    'Accept-Language': 'en-US,en;q=0.8',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0',  # noqa
}

我觉得通过这个来限速的可能性不大吧

Justsoos commented 6 years ago

我这测同一个下载链接,反而 lulu更快些。我注意到你切图里没有 proxy 选项,如果你在wall 外就算了,如果在 wall 内,代理也是个重要影响. @mashirozx

Justsoos commented 6 years ago

一般来说,技术圈都不会怀疑 y2b 搞低级限流,因为它商业模式优越,流量不贵,而且终端应用太多,限制 UA 是很容易搬起石头砸自己的脚的。国内的视频厂商才会干这种龌龊事儿。

mashirozx commented 6 years ago

@Justsoos 日本服务器,裸连的~ 话说如此,也不好说,我的代理服务器就被Google Scholar禁止访问了(据说防止滥用)

Justsoos commented 6 years ago

也可能是u2b的 cdn 对某些(非人类) IP 限流,但这个策略没有全局。 你可以试试 --itag=22 这个内容所在 cdn 貌似对某些线路上,比 --itag=137 的下载要快不少

mashirozx commented 6 years ago

@iawia002 换过视频也重启过了都这样,实在不明白了... 等过几天再试试吧 😢

mashirozx commented 6 years ago

@Justsoos 刚刚试了一下你说的千真万确,如此说难道 lulu 和 youtube-dl 用的 1080p 下载节点不一样吗?😭

image

mashirozx commented 6 years ago

@Justsoos 又试了一次 youtube-dl 和 lulu,相同的137节点下载,但是速度相差巨大 😂: image

Justsoos commented 6 years ago

其实最快下载,应该是 quic 下载器,但youtube-dl 和lulu you-get 并不支持。呵呵

Justsoos commented 6 years ago

想起来了,今天见识到 @iawia002 作的 go annie 真是速度飞快啊,真可以用 go 作个 quic 专属下载,youtube 下载粉丝们会因此疯狂的。哈哈

Justsoos commented 6 years ago

有个这种测试办法,把 youtube-dl 和 lulu 解析出来的流地址,都交给 go 下载器,看看速度怎么样,也许会有大发现。 我总有个怀疑,python 的网络底层 c 语言模块写的有问题。

mashirozx commented 6 years ago

@Justsoos要怎么拉流地址😂

Justsoos commented 6 years ago

lulu -u http://xxxxx 或者 youtube-dl - g http://xxxxx 拿流地址,我估计annie 支持直接接流地址的下载。哈哈,恰好你这个有没墙 vps 测试的也来了 @mashirozx 我估计python 的底层 c 该换代了,换成 go 的全新模块,那就有意思了。哈哈

另外,you-get 和 lulu 用的 urllib 实在太古老了,应该不支持,或者说 you-get 根本就没考虑支持 session,导致每次去目标网站开个网页,都是单独 tcp 重新搞一次握手,不仅容易出错,还效率极其低下,这个技术实在太弱智过时了。 go 语言annie之所以快,在这两方面,我估计都有关系。

Justsoos commented 6 years ago

太可惜了(@iawia002 赶紧干活的意思),annie 竟然没有直接下载流的命令行输入。。。。大材小用了啊

iawia002 commented 6 years ago

@Justsoos will do

mashirozx commented 6 years ago

@Justsoos @iawia002 大神们赶快加油(σ・ω・)σ

原来lulu和you-get用的也是urllib啊,我还以为这么low的东西只有我会用呢😂

iawia002 commented 6 years ago

@mashirozx 你博客做得挺漂亮的

mashirozx commented 6 years ago

@iawia002 谢谢~ Diana 看起来很强大啊 orz

iawia002 commented 6 years ago

@mashirozx 哈哈 换个友链吗,虽然我还没写页面 😂

mashirozx commented 6 years ago

@iawia002 OK的!已经加上了~ 也想自己写一套博客系统 😂

Justsoos commented 6 years ago

哈,你们俩。。。商业行为都开始了。 去试试新版 annie,可以下流了,速度飞快啊,虽然还有bug,这个要改一下,用来下直播流的话,filesize是0,annie将报错 https://github.com/iawia002/annie/blob/41691ca0f4ec3d9845ce3e3e5424a5837a251e70/downloader/downloader.go#L61 而且也不支持手动输入referrer,b站是不能下的。 看你在日本vps上测试一下速度了。 @mashirozx lulu -p annie http://sth 就能下,或者提取了url 也行。

iawia002 commented 6 years ago

@mashirozx 我也加上了~

iawia002 commented 6 years ago

@Justsoos 恩,没考虑过直播流的情况,referrer 我尽快

Justsoos commented 6 years ago

@mashirozx 这下有的你测了,三个版本: 1,旧版lulu 2,只换掉 common.py 的 新版lulu 下载 https://github.com/iawia002/Lulu/pull/87/files 3,新版golang annie 0.2.2 https://github.com/iawia002/annie/releases/tag/0.2.2 ,用 lulu 或者 youtube-dl 取了流 url 之后用 annie 下载。

我这测了后两者基本是翻墙账号的上限速度了。

Justsoos commented 6 years ago

annie 的 golang 在win10 下,环境变量http_proxy没作用,但 proxifier 有效,在linux 下 proxychain4 也没作用。所以,最好就是在墙外测 youtube 最高速度

mashirozx commented 6 years ago

@Justsoos 更新过以后 lulu 的速度上来啦~ image

Thank you all!! @iawia002 @Justsoos

iawia002 commented 6 years ago

@mashirozx Annie 也支持 youtube 了,可能更快 ເ😎ว

Justsoos commented 6 years ago

如果能支持通过 ssr 或 kcp, v2ray 走 quic relay ,越过伟大的墙,那会更牛逼。golang 应该有最好的原生 quic 支持 @iawia002

iawia002 commented 6 years ago

quic 我不是很了解,我空了可以看看,go 好像只有第三方库有对 quic 协议的实现

mashirozx commented 6 years ago

image 刚刚发现 YouTube 用自己电脑下载好像也会被限速 😂

mashirozx commented 6 years ago

@iawia002 不是太了解 go... 这是什么情况😂 image

Justsoos commented 6 years ago

嗯,看来不是 python 底层有问题,而是 老 urllib 在you-get 和老 lulu 上有问题。