mirror of
https://github.com/spaam/svtplay-dl.git
synced 2024-11-27 13:44:14 +01:00
Add support for caption subtitles
This commit is contained in:
parent
5ba3aead98
commit
f15f366cd5
@ -281,6 +281,9 @@ def _dashparse(config, text, url, output, cookies, **kwargs):
|
||||
**kwargs,
|
||||
)
|
||||
for sub in subtitles:
|
||||
if len(subtitles) > 1:
|
||||
if sub["role"] and sub["role"] != "main" and sub["role"] != "subtitle":
|
||||
sub["lang"] = f'{sub["lang"]}-{sub["role"]}'
|
||||
yield from subtitle_probe(copy.copy(config), url, subfix=sub["lang"], output=copy.copy(loutput), files=sub["files"], **kwargs)
|
||||
|
||||
|
||||
|
@ -89,13 +89,16 @@ def _hlsparse(config, text, url, output, **kwargs):
|
||||
segments = False
|
||||
if i["TYPE"] == "SUBTITLES":
|
||||
if "URI" in i:
|
||||
caption = None
|
||||
if i["GROUP-ID"] not in subtitles:
|
||||
subtitles[i["GROUP-ID"]] = []
|
||||
if "LANGUAGE" in i:
|
||||
lang = i["LANGUAGE"]
|
||||
else:
|
||||
lang = "und"
|
||||
item = [i["URI"], lang]
|
||||
if "CHARACTERISTICS" in i:
|
||||
caption = True
|
||||
item = [i["URI"], lang, caption]
|
||||
if item not in subtitles[i["GROUP-ID"]]:
|
||||
subtitles[i["GROUP-ID"]].append(item)
|
||||
continue
|
||||
@ -165,8 +168,12 @@ def _hlsparse(config, text, url, output, **kwargs):
|
||||
if subtitles:
|
||||
for sub in list(subtitles.keys()):
|
||||
for n in subtitles[sub]:
|
||||
subfix = n[2]
|
||||
if len(subtitles[sub]) > 1:
|
||||
if subfix:
|
||||
subfix = f"{n[1]}-caption"
|
||||
yield from subtitle_probe(
|
||||
copy.copy(config), get_full_url(n[0], url), output=copy.copy(output), subfix=n[1], cookies=cookies, **kwargs
|
||||
copy.copy(config), get_full_url(n[0], url), output=copy.copy(output), subfix=subfix, cookies=cookies, **kwargs
|
||||
)
|
||||
|
||||
elif m3u8.media_segment:
|
||||
|
@ -32,7 +32,7 @@ def subtitle_probe(config, url, **kwargs):
|
||||
elif subdata.text.startswith("#EXTM3U"):
|
||||
m3u8 = M3U8(subdata.text)
|
||||
yield subtitle(config, "wrstsegment", url, **kwargs, m3u8=m3u8)
|
||||
elif "<?xml" in subdata.text:
|
||||
elif "<?xml" in subdata.text or "<MPD" in subdata.text:
|
||||
xmldata = ET.fromstring(subdata.text)
|
||||
if xmldata.tag.endswith("MPD"):
|
||||
data = http.get(kwargs.get("files")[0]).content
|
||||
@ -57,7 +57,7 @@ class subtitle:
|
||||
self.kwargs = kwargs
|
||||
|
||||
def __repr__(self):
|
||||
return f"<Subtitle(type={self.subtype}, url={self.url}>"
|
||||
return f"<Subtitle(type={self.subtype}, url={self.url} subfix={self.subfix}>"
|
||||
|
||||
def download(self):
|
||||
output_ext = "srt"
|
||||
|
Loading…
Reference in New Issue
Block a user