curl - 为什么 Curl 会忽略给定的范围?

标签 curl youtube

我需要使用 Curl 下载 Youtube 视频的特定部分。 (假设我想下载前 2MB)我在 Curl 中使用 -r 开关来实现这一点。它适用于非 YouTube 链接,但 Youtube 链接会忽略我用 -r 指定的范围。 Curl 下载整个视频文件,而不是下载我想要的 block 。我该怎么做?
提前致谢!

(我使用的示例代码:)

curl --cookie "VISITOR_INFO1_LIVE=EIBGUtRnRx4; demographics=d9e6a6b806922b989c443b57cc40cf59e3QDAAAAYWdlaRQAAAB0BgAAAGdlbmRlcnQBAAAAbTA=; s_tempdata-336183159=ei=xBC_UeOJLs6hkgXB7oGwDw&ved=CDcQvxs; s_tempdata-3430648675=ei=xBC_UeOJLs6hkgXB7oGwDw&ved=CEwQvxs; s_tempdata-877158463=ei=xBC_UeOJLs6hkgXB7oGwDw&ved=CF8Qvxs; s_tempdata-2333910030=ei=xBC_UeOJLs6hkgXB7oGwDw&ved=CHsQvxs; s_tempdata-3498387738=ei=xBC_UeOJLs6hkgXB7oGwDw&ved=CDIQvxs; s_tempdata-106278690=ved=CFcQvxs&ei=Q9LCUfqrJMK0kgX3ioGgBw; s_tempdata-1014563062=ved=CFoQvxs&ei=cxDEUf3OAsiekQXjiYCACA; d9ji4.resume=uFMMXRoSxnA:183; s_tempdata-1950472349=ei=ywzMUcPiJqekmQXrtIC4Cw&ved=CCMQvxs; s_tempdata-350957551=ei=UxDMUaWGJOTnmAWnmIHICg&ved=CDMQvxs; s_tempdata-3561588006=ei=MD_MUZyPGeTnmAX3koHgBw&ved=CDIQvxs; s_tempdata-1460032003=ei=1VDOUbSyIYjOmgXtyYGAAQ&ved=CA0Qvxs; s_tempdata-2286494229=ei=lFXOUfiMLerbmAXrgoG4Aw&ved=CIABEL8b; s_tempdata-1936772083=ei=lFXOUfiMLerbmAXrgoG4Aw&ved=CH0Qvxs; s_tempdata-190970993=feature=g-high-crv&ei=S9zOUZzYLsi3ygHS9YD4BA&ved=CIgBEPklKAE; __utma=27069237.288981257.1372343761.1372343761.1372511855.2; __utmb=27069237.5.10.1372511855; __utmz=27069237.1372343761.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); __utmc=27069237; YSC=TwN0bcR_vzM; recently_watched_video_id_list=cc05ffe7b8a53d9d2dbcb9695b1b5354WwEAAABzCwAAAEhTZUltcWJWMzBz; ACTIVITY=1372523413722; PREF=f1=50000000&fv=11.2.202&al=en;" -o ~/Downloads/File.part -r 0-2000000 "http://r4---sn-nau-jhcl.c.youtube.com/videoplayback?id=1d27889aa6d5df4b&ipbits=8&factor=1.25&ms=au&mt=1372523374&fexp=925614%2C906370%2C912519%2C904825%2C900222%2C909546%2C906397%2C928201%2C929123%2C929915%2C929906%2C929907%2C929125%2C929127%2C925714%2C929917%2C929919%2C931202%2C912512%2C912515%2C912521%2C906838%2C906840%2C931913%2C904830%2C919373%2C933701%2C904122%2C900816%2C909421%2C912711%2C907228&mv=m&burst=40&algorithm=throttle-factor&expire=1372545822&sver=3&source=youtube&newshard=yes&cp=U0hWR1VPU19HTENONl9NSVdJOkNGQUpTdVJvVnY0&upn=a9WEy2DAZiY&ip=103.21.166.17&key=yt1&itag=34&sparams=algorithm%2Cburst%2Ccp%2Cfactor%2Cid%2Cip%2Cipbits%2Citag%2Csource%2Cupn%2Cexpire&signature=399599C4C262CCEAED9AB8AEA48A71DDFADFB7CF.08C556136636AFD52BE0318D3E4AECAC1ABFB7C5"

最佳答案

YouTube 服务器似乎不支持范围参数或忽略它。来自cURL docs :

4.11 Why does my HTTP range requests return the full document?

Because the range may not be supported by the server, or the server may choose to ignore it and return the full document anyway.

关于curl - 为什么 Curl 会忽略给定的范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17382454/

相关文章:

php - YouTube API v2.0 - OAuth 2.0授权

android - YouTubePlayerSupportFragment 启动重复 Activity

api - 如何知道Youtube用户是否已通过验证

php - 除了Zend的YouTube PHP API

curl - Rustup 说 libcurl 中不支持或禁用协议(protocol) "https"

python - 如何解析curl响应而不将其保存到文件中

javascript - 如何从curl命令转换为ajax请求

php - 即使尝试强制 3D 安全,3DSv2 也始终返回 Status=OK

api - 如何从Youtube音乐视频中提取艺术家和歌曲信息?

php - 如何通过YouTube API检索视频中的喜欢和不喜欢的东西