我目前正在编写一个Java应用程序,该程序将下载任何视频并将其转换为MP3(我知道那里有很多类似的东西,这只是一点学习经验.)
我目前正在检索格式和URL列表,并且可以很好地下载MP4格式的视频(要做的唯一事情就是直接下载流格式映射中给出的URL.)
但是,每当我尝试下载FLV视频时,youtube都会向我显示403禁止错误(这是一个很大的问题,因为很多视频仅以FLV格式提供.)
经过使用chrome开发人员工具的快速检查后,发现有一个名为ACTIVITY的cookie,该cookie在开始实际的视频下载时会发送到服务器,并且该值与从/ watch的原始调用接收到的时间戳非常相似,只有3个位数更准确(因此将是毫秒).我不确定这是否是问题所在;可能是generate_204,这个请求在chrome开发人员工具中也引起了我的注意.
请不要将我指向复杂的不可读的Python / etc.例子.我强烈不喜欢Python,而且我还不能流利地阅读别人的代码(特别是如果它又大又复杂的时候).谢谢.
tl; dr-还有什么让youtube将我的FLV发送给我,而不是抛出403禁止的消息?它和Cookie有关吗? generate_204?等等..
解决方法:
您应在视频播放网址中添加“签名”参数.签名包含在fmt url中作为sig参数.只需使用Fiddler例如在页面源中查找sig属性并在最终URL中查找签名.