2009-04-22 2 views
1

Я использую версию Python в API YouTube, чтобы получить YouTubeVideoFeed объект, используя следующий URL:Как получить URL общедоступного канала с объекта YouTubeVideoFeed с помощью API YouTube?

http://gdata.youtube.com/feeds/api/users/USERNAME/uploads

Примечание: я заменил USERNAME с учетной записью мне нужно следовать.

До сих пор получение фида, повторение записей, получение URL-адресов игроков, заголовков и эскизов было простым. Но теперь я хочу добавить ссылку «Посетите канал» на страницу. Я не могу понять, как получить «общедоступный» URL канала (в данном случае, канал по умолчанию от пользователя) из фида. Из того, что я могу сказать, единственные URL-адреса, хранящиеся непосредственно в точке подачи на http://gdata.youtube.com/, , не являются общественным сайтом.

Как я могу ссылаться на канал на основе фида?

ответ

0

вы можете быть запутанными именами пользователей ... когда я использую мое имя я получаю мою общедоступную страницу http://gdata.youtube.com/feeds/api/users/drdredel/uploads Они имеют некоторое дурацкое различие между вашим GMAIL именем пользователем и именем пользователем YouTube. Или я не понимаю ваш вопрос?

+0

Когда я нажимаю на вашу ссылку, он считает, что это атомный канал, я просто хочу, чтобы страница канала YouTube, на которую люди обычно посещали. – Soviut

+0

- это доступ через api? почему бы просто не пойти прямо так: http://www.youtube.com/user/drdredel? возможно, я не понимаю тебя. –

+0

Возможно, мне нужно настроить параметры, которые ожидает мой сценарий. Сейчас он принимает URL-адрес gdata.youtube.com, но, возможно, мне просто нужно передать имя канала или имя пользователя. – Soviut

1

Ну, youtube.com/user/USERNAME является довольно безопасным выбором, если вы хотите построить URL самостоятельно, но я думаю, что вы хотите, это ссылка отн = «альтернативный»

Вы должны получить массив ссылку из канала и итерации, чтобы найти альтернативный, а затем захватить HREF

что-то вроде:

client = gdata.youtube.service.YouTubeService() 

feed = client.GetYouTubeVideoFeed('http://gdata.youtube.com/feeds/api/users/username/uploads') 

for link in feed.link: 
    if link.rel == 'alternate': 
    print link.href 

Выход:

http://www.youtube.com/profile_videos?user=username

Самое правильное, что было бы, чтобы захватить «альтернативного» ссылку из канала профиля пользователя, как технически выше URL идет к загруженным видео, а не главная страница канала

feed = client.GetYouTubeUserEntry('http://gdata.youtube.com/feeds/api/users/username') 

for link in feed.link: 
    if link.rel == 'alternate': 
    print link.href 

выход: http://www.youtube.com/profile?user=username

Смежные вопросы