Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python FFmpeg不下载hls流_Python_Ffmpeg_Http Live Streaming_M3u8 - Fatal编程技术网

Python FFmpeg不下载hls流

Python FFmpeg不下载hls流,python,ffmpeg,http-live-streaming,m3u8,Python,Ffmpeg,Http Live Streaming,M3u8,我正在尝试从m3u8文件下载视频。我使用了chrome开发工具网络分析器并从m3u8文件中复制了地址 #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:6 #EXT-X-MEDIA-SEQUENCE:0 #EXT-X-PLAYLIST-TYPE:VOD #EXT-X-KEY:METHOD=AES-128,URI="key://pi1CcgormCfrBeHFonx1SjYyNREActOy9x5fdSmTcQ74q9gDltGOMVTb2KT

我正在尝试从m3u8文件下载视频。我使用了chrome开发工具网络分析器并从m3u8文件中复制了地址

#EXTM3U
#EXT-X-VERSION:3
#EXT-X-TARGETDURATION:6
#EXT-X-MEDIA-SEQUENCE:0
#EXT-X-PLAYLIST-TYPE:VOD
#EXT-X-KEY:METHOD=AES-128,URI="key://pi1CcgormCfrBeHFonx1SjYyNREActOy9x5fdSmTcQ74q9gDltGOMVTb2KT7jebRYJNU9skhE1wPp3VBgsIQhutzL9nlU7CwifAHVRX63E8abzo+8daPodXlUvN8qlXDKE8I2w37kc+UqyTG86U3Kg==",IV=0x157c77a2bc4ce357dfb893e2c01f8561
#EXTINF:6.0000,
https://contentplayer.website.com/video/4vqnGjj0L3/hls/360/segment-0.ts
....
#EXTINF:1.0667,
https://contentplayer.website.com/video/4vqnGjj0L3/hls/360/segment-219.ts
#EXT-X-ENDLIST 
所以我输入了ffmpeg,得到了一个403禁止的错误

[https @ 0x55c2fae84d80] HTTP error 403 Forbidden
[crypto @ 0x55c2fb11ebc0] Unable to open resource: https://contentplayer.website.com/video/4vqnGjj0L3/hls/540/segment-1.ts
[hls @ 0x55c2fae807c0] Failed to open segment 1 of playlist 0
...
我认为这可能是因为缺少一些http头,所以我从devtools复制了cURL命令。(我复制了一个段的请求,其中我有cloudfront授权密钥)

我从cURL中获取了所有的头文件,并将它们添加到ffmpeg中

ffmpeg -allowed_extensions ALL -headers 'User-Agent: ...'
-headers 'Accept: */*' 
-headers 'Accept-Language: ...' 
-headers 'Referer: https://player....com/' 
-headers 'Origin: https://player....com' 
-headers 'Connection: keep-alive'
-headers 'Cookie: CloudFront-Policy=..; CloudFront-Signature=...; CloudFront-Key-Pair-Id=..; hotid=..; hmVlcIntegration=..' -headers 'Pragma: no-cache' -headers 'Cache-Control: no-cache' -headers 'TE: Trailers' 
-protocol_whitelist file,crypto,https,tcp,tls -i esse.m3u8  -map 0 -c copy output.mkv  -i link.m3u8  -map 0 -c copy output.mkv
但是,我仍然收到403禁止的错误。当我执行cURL命令时,它会下载片段的内容。我的假设是,因为它是关于HTTP2的,所以在第一次连接之后没有发送头,而是添加了所有重要的头。
执行此过程的其他方法也很受欢迎。

该文件受DRM保护。@szatmary因此,我复制了服务器发出的相同请求,并且我拥有用于解密的AES密钥。如果这是问题所在,我在解密/转换/连接部件时会出现错误,但我从服务器收到403错误。该文件受DRM保护。@szatmary因此,我复制了服务器发出的相同请求,并且我有用于解密的AES密钥。如果这就是问题所在,那么当我解密/转换/连接这些部分时,我会得到错误,但是我从服务器得到了403错误。