Constructor
class SubtitlesManager(subs_dict)
Processes raw subtitles data, providing easy access to subtitles by language code and filtering.
Parameters:
Properties
subtitles
dict
A dict with lang_code and list of Subtitles objects.
Methods
get(lang_code) ->
list
Get Subtitles list by iso-code. If not found, returns empty list.
Parameters:
| lang_code |
str |
The ISO language code for the subtitle. |
Returns the languages keys managed by the instance.
yt.subtitles.keys()
values()
list
yt.subtitles.values()
A dict with lang_code and list of Subtitles objects.
yt.subtitles.items()
Returns the amount of languages managed by the instance.
len(yt.subtitles)
iter()
Allows iteration over the list of subtitles.
for lang, arr in yt.subtitles:
for sub in arr:
print(sub)
Filters subtitles based on various options.
Parameters:
| ext |
str |
Filters to only include extension provided. |
| lang |
str |
Filters to only include language provided. |
| only_autogen |
bool |
Filters to only include auto-generated subtitles. |
| no_autogen |
bool |
Filters to only include manual subtitles. |
| custom |
func |
A custom filter function that takes a Subtitles object as input. |
Example
Get all subtitles
import MyTube
yt = MyTube.YouTube("https://www.youtube.com/watch?v=Xj0Jtjg3lHQ")
for sub in yt.subtitles.values():
print(sub)
Subtitles(en-auto.srt)
Subtitles(en-auto.vtt)
Subtitles(en.srt)
Subtitles(en.vtt)
Subtitles(zh-hans.srt)
Subtitles(zh-hans.vtt)
Subtitles(zh-hant.srt)
Subtitles(zh-hant.vtt)
Subtitles(fr.srt)
Subtitles(fr.vtt)
Subtitles(de.srt)
Subtitles(de.vtt)
Subtitles(ru.srt)
Subtitles(ru.vtt)
Subtitles(es.srt)
Subtitles(es.vtt)
Filter subtitles
import MyTube
yt = MyTube.YouTube("https://www.youtube.com/watch?v=Xj0Jtjg3lHQ")
for sub in yt.subtitles.filter(ext="vtt", no_autogen=True).values():
print(sub)
Subtitles(en.vtt)
Subtitles(zh-hans.vtt)
Subtitles(zh-hant.vtt)
Subtitles(fr.vtt)
Subtitles(de.vtt)
Subtitles(ru.vtt)
Subtitles(es.vtt)
Get subtitles with specific language
import MyTube
yt = MyTube.YouTube("https://www.youtube.com/watch?v=Xj0Jtjg3lHQ")
lang_code = 'de'
subs = yt.subtitles.get(lang_code)
if not subs:
print(f"{lang_code} subtitles not found")
else:
for sub in subs:
print(f"lang={sub.lang}, name={sub.name}, fotmat={sub.ext}")
lang=de, name=German, fotmat=srt
lang=de, name=German, fotmat=vtt
Filter subtitles with specific language
import MyTube
yt = MyTube.YouTube("https://www.youtube.com/watch?v=Xj0Jtjg3lHQ")
subs = yt.subtitles.filter(lang="en")
print(subs.values())
[Subtitles(en-auto.srt), Subtitles(en-auto.vtt), Subtitles(en.srt), Subtitles(en.vtt)]