2010-06-13 1 views
1

Кто-нибудь знает, можно ли отключить рейтинги и комментарии YouTube с помощью API Python? Я знаю, что вы можете сделать это, используя тег yt: accessControl в XML-запросе, но я понятия не имею, как создать запрос вручную. Любая помощь будет оценена :)Отключить комментарии/рейтинги с помощью API Python YouTube?

+0

проголосовать за возможность отключить комментарии в YouTube Data API V3 здесь: https: //code.google.com/p/gdata-issues/issues/detail?id=7664 –

ответ

2

Я считаю, что вам нужно использовать версию API для версии 2.0, а различные API-интерфейсы, включая Python, предоставляют только версии 1.0. Но нетрудно обновить видео, чтобы изменить управление доступом с помощью простой версии 2.0, даже если все остальное вы делаете с помощью API-интерфейса, специфичного для языка. The docs (для 2.0 API) объясняет:

Чтобы обновить видео, отправьте HTTP-PUT запрос на URL, указанного в <link> теге Входа Video, где отн значение атрибута редактировать:

<link rel='edit' type='application/atom+xml' 
    href='http://gdata.youtube.com/feeds/api/users/USER_ID/uploads/VIDEO_ID'> 

тело запроса PUT представляет собой атом Запись XML, содержащая информацию о видео. В запросе можно указать любые следующих элементов и их подзаголовков . Обязательные поля отмечены звездочкой (*).

media:title* 
media:description* 
media:category* 
media:keywords* 
yt:accessControl 
yt:location 
yt:private 
georss:where 

Обратите внимание, что за исключением элемента будет удалить информацию, которая уже существует для этого видео.

... так что вам придется повторить некоторые данные, которые вы уже дали на загрузки (чтобы избежать удаления этой информации) для того, чтобы иметь возможность добавлять yt:accessControl элементы.

Документов для загрузки имеет complete example заголовков, multipart-related форматирования и XML вы будете посылать (с добавлением меток управления доступом как в this part из документации) - но пример является POST, не a PUT, потому что он загружает видео, не изменяя его информацию (и контроль доступа). Чтобы отправить HTTP-методы, отличные от GET и POST, через стандартную библиотеку Python, используйте httplib: сделайте HTTPConnection, а затем вызовите его метод request с PUT в качестве первого аргумента, затем URL-адрес (часть после узла, см. Примеры в конце этого раздела на Python онлайн Документах), тело (часть, которая в примере, в документации на Youtube 2.0 API начинает

--f93dcbA3 
Content-Type: application/atom+xml; charset=UTF-8 

<?xml version="1.0"?> 
<entry xmlns="http://www.w3.org/2005/Atom" 

и, наконец, заголовки).

Да, это определенно не не так удобно, как API GData, но до тех пор, пока последний не будет обновлен для поддержки функциональности API 2.0, я подозреваю, что это лучший способ. Основной альтернативой было бы настроить источники API Python (найдено here), чтобы добавить необходимый вам 2-разрядный функциональный блок, но, как мне показалось, это еще больше работает.

0

Вы можете использовать удлинительный элемент, пожалуйста, проверьте here и предыдущий ответ here

рейтинги, комментарии, предложение являются частью yt:accessControl

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