diff --git a/youtube_transcript_api/_transcripts.py b/youtube_transcript_api/_transcripts.py index 3d9a5e7..ef1f44b 100644 --- a/youtube_transcript_api/_transcripts.py +++ b/youtube_transcript_api/_transcripts.py @@ -134,7 +134,7 @@ class TranscriptList(object): { 'language': translation_language['languageName']['simpleText'], 'language_code': translation_language['languageCode'], - } for translation_language in captions_json['translationLanguages'] + } for translation_language in captions_json.get('translationLanguages', []) ] manually_created_transcripts = {} diff --git a/youtube_transcript_api/test/assets/youtube_no_translation_languages.html.static b/youtube_transcript_api/test/assets/youtube_no_translation_languages.html.static new file mode 100644 index 0000000..adba102 --- /dev/null +++ b/youtube_transcript_api/test/assets/youtube_no_translation_languages.html.static @@ -0,0 +1,903 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + اسهل طريقه لفك ضغط العاب الكمبيوتر | وتشغيل جميع الالعاب بدون مشاكل 🔥 - YouTube + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + +
+ + + + +
+
+
+
+
+
+ + +
+
+ +
+
+
+
+
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + + + + + + + + + + + + +
+
+
+ + + + + + +
+
+
+
+
+
InfoPresseUrheberrechtKontaktCreatorWerbenEntwicklerImpressumVerträge hier kündigenNutzungsbedingungenDatenschutzRichtlinien & SicherheitWie funktioniert YouTube?Neue Funktionen testen + +
+ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/youtube_transcript_api/test/test_api.py b/youtube_transcript_api/test/test_api.py index d6f5e0c..9b5e732 100644 --- a/youtube_transcript_api/test/test_api.py +++ b/youtube_transcript_api/test/test_api.py @@ -108,6 +108,19 @@ class TestYouTubeTranscriptApi(TestCase): with self.assertRaises(InvalidVideoId): YouTubeTranscriptApi.list_transcripts('https://www.youtube.com/watch?v=GJLlxj_dtq8') + + def test_list_transcripts__no_translation_languages_provided(self): + httpretty.register_uri( + httpretty.GET, + 'https://www.youtube.com/watch', + body=load_asset('youtube_no_translation_languages.html.static') + ) + + transcript_list = YouTubeTranscriptApi.list_transcripts('GJLlxj_dtq8') + for transcript in transcript_list: + self.assertEqual(len(transcript.translation_languages), 0) + + def test_translate_transcript(self): transcript = YouTubeTranscriptApi.list_transcripts('GJLlxj_dtq8').find_transcript(['en'])