Youtube API - каналы не возвращают данные JSON?

Мой javascript ужасен, так что терпите меня.

Получил вызов API для получения данных канала для указанного пользователя. Затем я хочу использовать идентификатор в элементе данных «relatedPlaylists», чтобы получить все видео пользователей.

В настоящее время я не думаю, что API возвращает правильные данные. Любая помощь очень ценится.

function get_playlist() {	
				get_file('https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=petermillard1&key='+YouTubeAPIkey,
				function(data) 
					{ 
						show_channel(JSON.parse(data));
						get_videos();
				});
			}

			function show_channel(data) {					
				console.info('Channel data:' + data);							
				console.info('Uploads: ' + data.items.contentDetails.relatedPlaylists.uploads);
				videos=data.items.contentDetails.relatedPlaylists.uploads;
				console.info('Videos: ' + videos);			
			}			

		function get_videos() {
				get_file('https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2C+contentDetails&id='+ videos + '&key='+YouTubeAPIkey, 
					function(data) 
						{
							create_playlist(JSON.parse(data));
						});
			}

Вот что отображается в консоли:

Channel data:[object Object]

Uncaught TypeError: Cannot read property 'relatedPlaylists' of undefined
at show_channel (vget.html:170)
at vget.html:163
at XMLHttpRequest.XHR.onreadystatechange (vget.html:190)
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
123
1

Ответы 1

Сначала вы должны проверить, есть ли данные в ответе channels.list.

Ошибка, с которой вы столкнулись, связана с тем, что, вероятно, данные не были возвращены.

Чтобы избежать загрузки списка воспроизведения, вы можете сделать это:

  • Получив channel_id, заменить выделенную букву, как показано ниже:

Channel: Microsoft Hololens:

Channel_id: UCT2rZIAL-zNqeK1OmLLUa6g

Uploads (playlist): UUT2rZIAL-zNqeK1OmLLUa6g

Затем вы можете вызвать функцию get_videos().

Другие вопросы по теме