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.

							keys()
							list
							
						

    Returns the languages keys managed by the instance.
    yt.subtitles.keys()

							values()
							list
							
						

    Returns flat list of Subtitles.
    yt.subtitles.values()

							items()
							dict
							
						

    A dict with lang_code and list of Subtitles objects.
    yt.subtitles.items()

							len()
							int
							
						

    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)

							filter(**kwargs) ->
							SubtitlesManager
							
						

    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)]