Add content-type check for HLS responses

This commit is contained in:
Barbagus 2023-01-09 05:07:04 +01:00
parent 5674b4aa0d
commit b13d4186b0
1 changed files with 8 additions and 0 deletions

View File

@ -29,11 +29,19 @@ from .model import Rendition, RenditionAudio, RenditionSubtitles, Source, Varian
# the same file
# - Subtitles indexes have only one segment
MIME_TYPE = "application/x-mpegURL"
def _fetch_index(http_session, url):
# Fetch a M3U8 playlist
r = http_session.get(url)
r.raise_for_status()
if (_ := r.headers["content-type"]) != MIME_TYPE:
raise UnexpectedHLSResponse("MIME_TYPE", url, MIME_TYPE, _)
r.encoding = "utf-8"
return m3u8.loads(r.text, url)