fix: Originalsprache bei Videos mit KI-synchronisierten Tonspuren
Gefunden mit einem englischen Video (0LmCveTM788): ohne -l wurde Arabisch gewählt, denn jede der 20 Synchron-Tonspuren hat eine eigene „-orig“-Spur. - original_language(): aus „language“, sonst Tonspur mit „original“, sonst die einzige „-orig“-Spur - Automatische Untertitel nur in der Originalsprache (keine Synchronisation) - Sprachen auch mit Region: „en“ findet manuelle Untertitel „en-US“ Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
7e6ffa5899
commit
547dcb358d
1 changed files with 108 additions and 19 deletions
|
|
@ -47,6 +47,49 @@ def test_original_language(info, expected):
|
|||
assert yt.original_language(info) == expected
|
||||
|
||||
|
||||
# English original with AI-dubbed audio tracks: every dub has its own "-orig"
|
||||
DUBBED = {
|
||||
"id": "dub",
|
||||
"language": "en-US",
|
||||
"subtitles": {"en-US": []},
|
||||
"automatic_captions": {"ar-orig": [], "en-orig": [], "de-DE-orig": [], "de": []},
|
||||
}
|
||||
DUBBED_NO_METADATA = {
|
||||
"formats": [
|
||||
{"format_note": "Arabic, low", "language": "ar"},
|
||||
{"format_note": "English (US) original (default), low", "language": "en-US"},
|
||||
],
|
||||
"subtitles": {},
|
||||
"automatic_captions": {"ar-orig": [], "en-orig": [], "de-DE-orig": []},
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.parametrize("info, lang, expected", [
|
||||
(DUBBED, "en", ("en-US", False)), # region variant of a manual track
|
||||
(DUBBED, "en-US", ("en-US", False)),
|
||||
(DUBBED, "de", None), # only the German AI dub
|
||||
(DUBBED, "ar", None),
|
||||
(DUBBED_NO_METADATA, "en-US", ("en-orig", True)),
|
||||
(DUBBED_NO_METADATA, "en", ("en-orig", True)),
|
||||
(DUBBED_NO_METADATA, "de", None),
|
||||
])
|
||||
def test_choose_track_with_dubbed_audio(info, lang, expected):
|
||||
assert yt.choose_track(info, lang) == expected
|
||||
|
||||
|
||||
@pytest.mark.parametrize("info, expected", [
|
||||
(DUBBED, "en-US"),
|
||||
(DUBBED_NO_METADATA, "en-US"), # from the audio track marked original
|
||||
({"automatic_captions": {"ar-orig": [], "en-orig": []}}, None),
|
||||
])
|
||||
def test_original_language_with_dubbed_audio(info, expected):
|
||||
assert yt.original_language(info) == expected
|
||||
|
||||
|
||||
def test_available_tracks_hides_dubs():
|
||||
assert yt.available_tracks(DUBBED) == (["en-US"], ["en"])
|
||||
|
||||
|
||||
def test_available_tracks():
|
||||
info = {"subtitles": {"fr": []}, "automatic_captions": {"de-orig": [], "de": []}}
|
||||
assert yt.available_tracks(info) == (["fr"], ["de"])
|
||||
|
|
|
|||
Loading…
Reference in a new issue