2010-06-13 4 views
1

Est-ce que quelqu'un sait s'il est possible de désactiver les évaluations/commentaires YouTube en utilisant l'API Python? Je sais que vous pouvez le faire en utilisant la balise 'yt: accessControl' dans la requête XML mais je n'ai aucune idée de la façon de générer une requête manuellement. Toute aide serait la bienvenue :)Désactiver les commentaires/évaluations avec l'API YouTube Python?

+0

Votez pour la capacité de désactiver les commentaires dans Data API YouTube V3 ici: https: //code.google.com/p/gdata-issues/issues/detail?id=7664 –

Répondre

2

Je crois que vous devez utiliser la version 2.0 de l'API YouTube, et les différentes API spécifiques à une langue, y compris Python, ne fournissent que des versions 1.0 pour l'instant. Mais il n'est pas difficile de mettre à jour une vidéo pour changer le contrôle d'accès avec une opération 2.0 à chaud, même si vous faites tout ce que vous faites grâce à une API spécifique à une langue. The docs (pour l'API 2.0) expliquent:

Pour mettre à jour une vidéo, envoyer une requête HTTP PUT demande à l'URL identifiée dans la balise d'entrée vidéo <link> où le rel valeur d'attribut est modifier:

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

le corps de la requête PUT est un atome Entrée XML contenant des informations sur la vidéo. Vous pouvez inclure n'importe quels des éléments suivants et leurs sous-étiquettes dans votre demande. Les éléments obligatoires sont marqués d'un astérisque (*).

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

Notez que l'exclusion d'un élément sera supprimer les informations qui ont déjà existe pour cette vidéo.

... alors vous devrez répéter certaines des informations que vous avez déjà donné sur le téléchargement (pour éviter la suppression de ces informations) afin de pouvoir ajouter yt:accessControl éléments.

Les docs pour ajout ont une complete example des en-têtes, multipart-related la mise en forme et XML vous enverraient (avec l'ajout des balises de contrôle d'accès comme par this part des docs) - mais l'exemple est un POST, non un PUT, parce qu'il télécharge une vidéo, ne change pas ses informations (et le contrôle d'accès). Pour envoyer des méthodes HTTP autres que GET et POST via la bibliothèque standard de Python, utilisez httplib: faites un HTTPConnection puis appelez sa méthode request avec PUT comme premier argument, puis URL (la partie après l'hôte, voir les exemples à la fin de cette section de la documentation en ligne Python), le corps (la partie qui dans l'exemple dans la documentation de l'API Youtube 2.0 commence

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

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

et enfin les en-têtes).

Oui, c'est certainement et non tout aussi pratique que l'API GData, mais, jusqu'à ce que ce dernier soit mis à jour pour supporter la fonctionnalité de l'API 2.0, je pense que c'est la meilleure solution. L'alternative principale serait de modifier les sources de l'API Python (trouvées here) pour ajouter les 2.0 bits de fonctionnalités dont vous avez besoin, mais, de prime abord, cela me semble être encore plus de travail.

0

Vous pouvez utiliser l'élément d'extension, s'il vous plaît vérifier here et réponse précédente here

évaluations, commentaires, liste font partie de yt:accessControl

Questions connexes