如何在FFmpeg中使用多个Cookie?
问题背景
尝试用FFmpeg下载需Cookie验证的视频,按文档说明用-cookies参数换行分隔多个Cookie,或用-headers传递多组Cookie字段,均返回403 Forbidden。但curl、Python aiohttp等工具可正常下载,说明Cookie与请求头本身有效。
错误原因分析
测试一(-headers传Cookie)错误点
HTTP标准中,单个Cookie头字段应包含所有Cookie键值对,用; (分号+空格)分隔,而非重复使用多个Cookie:字段。FFmpeg会严格按照输入格式发送请求,服务器收到多个Cookie头后无法正确解析验证,导致403。
测试二(-cookies传Cookie)错误点
-cookies参数要求每行一个key=value格式的Cookie,无需附带Domain、expires、HttpOnly等属性。你传入的Cookie包含这些额外属性,FFmpeg无法正确解析,导致Cookie未被正确携带。
正确命令示例
方法一:使用-headers传递单个Cookie头
将所有Cookie合并到一个Cookie:字段中,用; 分隔:
ffprobe -i "https://cdn12.tokyvideo.com/videos/215/215164/mp4/d41bdb167b322ab0b5bf03e9cd64c4c2edb5939e9ba56403afb52297c2ae97be.mp4?nva=20230227154655&nvb=20230223154655&token=0fe81937ec54cc94ab459" \ -user_agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0" \ -headers "Accept: */* Accept-Encoding: gzip, deflate Connection: keep-alive Upgrade-Insecure-Requests: 1 Host: www.tokyvideo.com Referer: https://www.tokyvideo.com Cookie: XSRF-TOKEN=eyJpdiI6IjNzMGJQb3duNVVNNFJFS0VUdW5MV3c9PSIsInZhbHVlIjoiMWhQRlVlUUxST01IblFXdFM3ZVQzYUZHd2ZRamdGR2JCejNpSmhaMHlwSjBwcksyeHF0UWRsZFhQd244ZW9wTzNsbmdBd2JiM2luTjR2TVhxdEdNdGJQaXE3S3BJM2J5WVljaEtXbFRMRm1aUjVTS2hQVDFVWkphUkc0bjBZSUsiLCJtYWMiOiI0ODJjZjIxZjkzZGQyZjU2YTAzNjNlYzQxMGU5YTQxYjdlZGZkZGJjYWFiZGNhYzRlMzBhZTZiY2MyYjA5OTI3In0%3D; tokyvideo_session=eyJpdiI6InVEUkxxUmdTZDJtZnNmeWpqaE9mTWc9PSIsInZhbHVlIjoid1kzVTVZbmtpRHJDUDZOc25pMnRMOFBCRk1IOTVXN3dMc3Y5MmlzaGh6NzVZM0xOMlNCOTB5bTFIemdLXC9ZWE14UGhKUHN2OEFJZDZhR241bG5FcGw0aHpHeTRnbUF0cGVVUkVqQUhReXllVTY1TmtGM2hsV0w5a3RxdCtBa09JIiwibWFjIjoiNzUxM2M1MTJiN2RiM2ZmOGZkYzViM2FkY2E1NTgwNjQzY2NjODIyNWQ4ZjRkMWUxZjc5ODU3NzQyZTQ4ZjJiZiJ9"
方法二:使用-cookies参数传递纯键值对Cookie
每行一个key=value,去掉所有额外属性:
ffprobe -i "https://cdn12.tokyvideo.com/videos/215/215164/mp4/d41bdb167b322ab0b5bf03e9cd64c4c2edb5939e9ba56403afb52297c2ae97be.mp4?nva=20230227154655&nvb=20230223154655&token=0fe81937ec54cc94ab459" \ -user_agent "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:96.0) Gecko/20100101 Firefox/96.0" \ -headers "Accept: */* Accept-Encoding: gzip, deflate Connection: keep-alive Upgrade-Insecure-Requests: 1 Host: www.tokyvideo.com Referer: https://www.tokyvideo.com" \ -cookies "XSRF-TOKEN=eyJpdiI6IjNzMGJQb3duNVVNNFJFS0VUdW5MV3c9PSIsInZhbHVlIjoiMWhQRlVlUUxST01IblFXdFM3ZVQzYUZHd2ZRamdGR2JCejNpSmhaMHlwSjBwcksyeHF0UWRsZFhQd244ZW9wTzNsbmdBd2JiM2luTjR2TVhxdEdNdGJQaXE3S3BJM2J5WVljaEtXbFRMRm1aUjVTS2hQVDFVWkphUkc0bjBZSUsiLCJtYWMiOiI0ODJjZjIxZjkzZGQyZjU2YTAzNjNlYzQxMGU5YTQxYjdlZGZkZGJjYWFiZGNhYzRlMzBhZTZiY2MyYjA5OTI3In0%3D tokyvideo_session=eyJpdiI6InVEUkxxUmdTZDJtZnNmeWpqaE9mTWc9PSIsInZhbHVlIjoid1kzVTVZbmtpRHJDUDZOc25pMnRMOFBCRk1IOTVXN3dMc3Y5MmlzaGh6NzVZM0xOMlNCOTB5bTFIemdLXC9ZWE14UGhKUHN2OEFJZDZhR241bG5FcGw0aHpHeTRnbUF0cGVVUkVqQUhReXllVTY1TmtGM2hsV0w5a3RxdCtBa09JIiwibWFjIjoiNzUxM2M1MTJiN2RiM2ZmOGZkYzViM2FkY2E1NTgwNjQzY2NjODIyNWQ4ZjRkMWUxZjc5ODU3NzQyZTQ4ZjJiZiJ9"
补充说明
- FFmpeg的
-cookies参数内部会自动处理Cookie的属性(如Domain、Path),无需手动指定; - 确保命令中的换行符在终端中能被正确解析(Linux/macOS用
\换行,Windows终端可直接换行或用^); - 若仍有问题,可开启FFmpeg的HTTP调试日志(添加
-v debug参数),查看实际发送的请求头是否与curl一致,定位差异点。
内容的提问来源于stack exchange,提问作者カルロサグ
相关产品推荐
相关产品推荐

