[extractor/common] Escape % in representation_id of m3u8

Closes #4877
This commit is contained in:
pukkandan 2022-09-09 09:58:41 +05:30
parent 0831d95c46
commit 0cb0fdbbfe
No known key found for this signature in database
GPG key ID: 7EEE9E1E817D0A39

View file

@ -2914,6 +2914,8 @@ def extract_Initialization(source):
def prepare_template(template_name, identifiers): def prepare_template(template_name, identifiers):
tmpl = representation_ms_info[template_name] tmpl = representation_ms_info[template_name]
if representation_id is not None:
tmpl = tmpl.replace('$RepresentationID$', representation_id)
# First of, % characters outside $...$ templates # First of, % characters outside $...$ templates
# must be escaped by doubling for proper processing # must be escaped by doubling for proper processing
# by % operator string formatting used further (see # by % operator string formatting used further (see
@ -2928,8 +2930,6 @@ def prepare_template(template_name, identifiers):
t += c t += c
# Next, $...$ templates are translated to their # Next, $...$ templates are translated to their
# %(...) counterparts to be used with % operator # %(...) counterparts to be used with % operator
if representation_id is not None:
t = t.replace('$RepresentationID$', representation_id)
t = re.sub(r'\$(%s)\$' % '|'.join(identifiers), r'%(\1)d', t) t = re.sub(r'\$(%s)\$' % '|'.join(identifiers), r'%(\1)d', t)
t = re.sub(r'\$(%s)%%([^$]+)\$' % '|'.join(identifiers), r'%(\1)\2', t) t = re.sub(r'\$(%s)%%([^$]+)\$' % '|'.join(identifiers), r'%(\1)\2', t)
t.replace('$$', '$') t.replace('$$', '$')