Add HLS segment download fallback
This commit is contained in:
+30
@@ -4275,6 +4275,36 @@ mid/index.m3u8
|
||||
"https://cdn.example/show/high/index.m3u8",
|
||||
)
|
||||
|
||||
def test_parse_hls_segments_resolves_plain_and_encrypted_segments(self):
|
||||
playlist = """#EXTM3U
|
||||
#EXT-X-MEDIA-SEQUENCE:7
|
||||
#EXTINF:4.0,
|
||||
seg-1
|
||||
#EXT-X-KEY:METHOD=AES-128,URI="keys/key.bin"
|
||||
#EXTINF:4.0,
|
||||
https://cdn.example/raw-segment
|
||||
#EXTINF:4.0,
|
||||
seg-3.ts
|
||||
"""
|
||||
|
||||
segments = provider_downloader.parse_hls_segments("https://cdn.example/path/index.m3u8", playlist)
|
||||
|
||||
self.assertEqual(segments[0], {"url": "https://cdn.example/path/seg-1"})
|
||||
self.assertEqual(
|
||||
segments[1],
|
||||
{
|
||||
"url": "https://cdn.example/raw-segment",
|
||||
"key_url": "https://cdn.example/path/keys/key.bin",
|
||||
"iv": "8",
|
||||
},
|
||||
)
|
||||
self.assertEqual(segments[2]["iv"], "9")
|
||||
|
||||
def test_strip_png_header_removes_short_wrapper(self):
|
||||
payload = b"\x89PNG\r\n\x1a\njunkIENDabcdVIDEO"
|
||||
|
||||
self.assertEqual(provider_downloader.strip_png_header(payload), b"VIDEO")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user