Guide du développeur: Python

L'API YouTube Data permet aux applications clientes de récupérer et de mettre à jour du contenu YouTube sous la forme de flux d'API Google Data. Votre application cliente peut utiliser les flux de l'API YouTube Data pour récupérer, rechercher et mettre à jour des vidéos, des commentaires, des réponses, des playlists, des profils utilisateur et des contacts, ainsi que pour rechercher des vidéos répondant à certains critères.

En plus de fournir des informations générales sur les fonctionnalités de l'API YouTube Data, ce document fournit des exemples d'interaction avec l'API à l'aide de la bibliothèque cliente Python. Pour utiliser la bibliothèque cliente Python, vous devez disposer de Python 2.0+ et des modules d'arborescence d'éléments, httplib et urllib. Pour en savoir plus, reportez-vous à la section Modules de dépendance.

Si vous avez besoin d'aide pour configurer la bibliothèque cliente Python, consultez le Guide de démarrage. Pour en savoir plus sur le protocole sous-jacent utilisé par la bibliothèque cliente Python pour interagir avec YouTube, consultez la page du guide du développeur.

À propos de ce document

Audience

Ce document est destiné aux programmeurs qui souhaitent créer des applications clientes capables d'interagir avec YouTube à l'aide de la bibliothèque cliente Python. Il fournit une série d'exemples d'interactions de l'API Data de base.

Pour en savoir plus sur l'API YouTube Data, consultez le guide de référence.

Dans ce document, nous partons du principe que vous comprenez les principes généraux du protocole Google Data APIs et que vous savez programmer dans Python.

Pour plus d'informations sur les classes et les méthodes Python, consultez la documentation sur pyDocs (pour la classe de service et pour les classes de données) incluses dans le code source.

Structure du document

Ce document inclut les sections suivantes :

  • La section Authentification décrit les deux méthodes d'authentification différentes disponibles pour associer des opérations d'API à un compte utilisateur spécifique. Cette section décrit également les différences entre l'authentification pour l'API YouTube Data et les autres API Google Data. Dans ce document, les explications de fonctions d'API spécifiques indiquent clairement si la fonction nécessite une authentification de l'utilisateur. En général, toutes les requêtes qui modifient les données vidéo ou de flux doivent être authentifiées. Les requêtes en lecture seule envoyées aux vidéos publiques ne nécessitent pas d'authentification.

  • La section Comprendre les flux et les entrées vidéo fournit un exemple de réponse à l'API et explique comment extraire des informations sur une vidéo à partir d'une liste de vidéos ou d'un ensemble de résultats de recherche. Cette section explique également comment accéder aux métadonnées d'une entrée vidéo spécifique. Enfin, cette section explique le mécanisme de mise à jour d'une entrée de vidéo individuelle.

  • La section Récupérer et rechercher des vidéos explique comment récupérer des listes de vidéos spécifiques (par exemple, un flux standard de vidéos les plus populaires sur YouTube). Les autres listes de vidéos incluent les vidéos mises en ligne par un utilisateur spécifique et les listes de vidéos en rapport avec une vidéo donnée. Cette section explique également comment utiliser l'API pour permettre aux utilisateurs de rechercher des termes ou des catégories de recherche spécifiques dans la bibliothèque de vidéos YouTube.

  • La section Mise en ligne de vidéos explique brièvement comment vous pouvez autoriser les utilisateurs à mettre en ligne des vidéos sur YouTube depuis votre application. Cette section explique également comment mettre en ligne des vidéos pour répondre à d'autres vidéos.

  • La section Modifier et supprimer des vidéos explique comment utiliser l'API pour mettre à jour des informations sur une vidéo YouTube. Il explique également comment supprimer une vidéo à l'aide de l'API.

  • La section Utiliser les fonctionnalités de la communauté décrit les fonctions de l'API qui permettent à vos utilisateurs d'interagir avec des vidéos YouTube. Ces fonctions décrivent les demandes de publication de notes, de commentaires ou de réclamations pour une vidéo existante. Vous pouvez également utiliser l'API pour récupérer des listes de commentaires vidéo.

  • La section Enregistrement et collecte de vidéos explique comment utiliser l'API pour accéder à vos vidéos préférées, vos playlists de vidéos et vos abonnements à des chaînes YouTube, les créer et les modifier. Il montre également comment modifier les playlists et les favoris vidéo en ajoutant et en supprimant des vidéos.

  • La section Activation de l'interaction utilisateur explique comment utiliser l'API pour récupérer et mettre à jour des profils utilisateur. Cette section explique également comment récupérer, ajouter, mettre à jour et supprimer des contacts utilisateur.

Premiers pas

Conditions requises

Votre application cliente peut utiliser les flux de l'API YouTube Data pour rechercher, récupérer et mettre à jour des vidéos, des commentaires, des réponses, des playlists, des abonnements, des profils utilisateur, etc.

En plus de fournir des informations générales sur les fonctionnalités de l'API YouTube Data, ce document fournit des exemples d'interaction avec l'API à l'aide de la bibliothèque cliente Python. Pour utiliser la bibliothèque cliente Python, vous devez disposer de Python 2.2+ et des modules d'arborescence d'éléments, httplib et urllib. Pour en savoir plus, reportez-vous à la section Modules de dépendance.

Pour en savoir plus sur la configuration de votre environnement, consultez le guide de démarrage. Pour en savoir plus sur le protocole sous-jacent utilisé par la bibliothèque cliente Python pour interagir avec YouTube, consultez le Guide du protocole du développeur.

Vous pouvez copier les extraits d'exemple ci-dessous et les coller dans votre code, puis les modifier selon vos besoins.

Avant de pouvoir effectuer des opérations avec l'API YouTube Data, vous devez initialiser un objet gdata.youtube.service.YouTubeService, comme indiqué ci-dessous. Les instructions import listées ci-dessous effectuent automatiquement d'autres importations à partir des modules gdata.media et gdata.geo. Notez que toutes les actions en dehors de la récupération de contenu public nécessitent une authentification.

import gdata.youtube
import gdata.youtube.service

yt_service = gdata.youtube.service.YouTubeService()

# Turn on HTTPS/SSL access.
# Note: SSL is not available at this time for uploads.
yt_service.ssl = True

La plupart des exemples de méthodes de ce guide fonctionnent sur une instance de gdata.youtube.service.YouTubeService. Il peut être utile de tester les requêtes non authentifiées de l'interpréteur Python interactif.

Remarque: La bibliothèque cliente Python doit être correctement ajoutée à votre chemin d'accès. Assurez-vous de l'installer en exécutant le script setup.py fourni. Pour en savoir plus, consultez le Guide de démarrage.

Authentification

Vous pouvez utiliser la bibliothèque cliente Python pour travailler avec des flux publics ou privés. Les flux publics sont en lecture seule et ne nécessitent aucune authentification. Pour les flux privés, vous devez vous authentifier auprès des serveurs YouTube.

L'authentification peut être effectuée via l'authentification ClientLogin (pour les applications de bureau) ou AuthSub (pour les applications Web).

Définir votre clé de développeur et votre ID client

Une clé de développeur identifie le développeur YouTube qui envoie une requête API. Un ID client identifie votre application à des fins de journalisation et de débogage.

Lorsque vous effectuez une requête API à l'aide de la bibliothèque cliente Python, l'en-tête de requête X-GData-Key permet de spécifier votre clé de développeur et l'en-tête X-GData-Client est utilisé pour spécifier votre ID client. La clé de développeur et l'ID client peuvent être définis sur l'objet YouTubeService, indépendamment du schéma d'authentification utilisé:

yt_service.developer_key = 'ABCxyz123...'
yt_service.client_id = 'My-Client_id'

Vous devez vous inscrire pour obtenir une clé de développeur YouTube.

Authentification AuthSub pour les applications Web

L'authentification par proxy AuthSub est utilisée par les applications Web qui doivent authentifier leurs utilisateurs auprès de comptes YouTube/Google. L'opérateur n'a pas besoin d'accéder au nom d'utilisateur et au mot de passe de l'utilisateur YouTube. Seuls des jetons AuthSub spéciaux sont requis.

Lorsque l'utilisateur visite votre application pour la première fois, il n'a pas encore été authentifié auprès des services Google. Dans ce cas, vous devez lui fournir un lien dirigeant l'utilisateur vers Google pour autoriser l'accès de vos applications à son compte YouTube. La bibliothèque cliente Python fournit une fonction permettant de générer cette URL. Le code ci-dessous configure un lien vers la page AuthSubRequest.

def GetAuthSubUrl():
  next = 'http://www.example.com/video_upload.pyc'
  scope = 'http://gdata.youtube.com'
  secure = False
  session = True

yt_service = gdata.youtube.service.YouTubeService()
return yt_service.GenerateAuthSubURL(next, scope, secure, session)

authSubUrl = GetAuthSubUrl()
print '<a href="%s">Login to your Google account</a>' % authSubUrl

Notez les paramètres envoyés à la méthode GenerateAuthSubURL des objets de service:

  • next : URL de la page vers laquelle YouTube doit rediriger l'utilisateur après avoir autorisé votre application à accéder à son compte.
  • scope : indique que l'application accédera uniquement aux flux d'API YouTube.
  • secure : indique que le jeton renvoyé ne sera pas un jeton sécurisé.
  • session : indique que ce jeton peut être échangé contre un jeton (session) à usages multiples.

L'URL renvoyée se présente comme suit:

https://www.google.com/accounts/AuthSubRequest?scope=http%3A%2F%2Fgdata.youtube.com&session=1&secure=0&next=http%3A%2F%2Fwww.example.com%2Fvideo_upload.pyc

L'utilisateur peut ensuite cliquer sur le lien pour se connecter à son compte YouTube. Une fois que l'utilisateur a autorisé votre application à accéder à son compte, il est redirigé vers l'URL next. Une valeur de jeton à usage unique est ajoutée à l'URL en tant que paramètre de requête. L'URL ressemble à ceci :

http://www.example.com/video_upload.pyc?token=Abc123...

La section suivante explique comment mettre à niveau ce jeton. L'extrait ci-dessous illustre l'une des manières de récupérer ce jeton à partir de l'URL:

import cgi
parameters = cgi.FieldStorage()
authsub_token = parameters[[]'token' ]

Passer à un jeton de session

Pour des raisons de sécurité, ce jeton est à usage unique. Vous devez donc maintenant l'échanger contre un jeton de session. Ce processus est décrit dans la documentation AuthSub. L'extrait de code suivant montre comment mettre à niveau le jeton.

yt_service = gdata.youtube.service.YouTubeService()
yt_service.SetAuthSubToken(authsub_token)
yt_service.UpgradeToSessionToken()

Cette valeur représente un jeton AuthSub à usage unique. Comme session = True a été spécifié ci-dessus, ce jeton peut être échangé contre un jeton de session AuthSub à l'aide de la méthode UpgradeToSessionToken, qui appelle le service AuthSubSessionToken.

Votre objet YouTubeService est maintenant entièrement authentifié et peut être utilisé pour effectuer d'autres requêtes avec l'API YouTube. Les jetons de session AuthSub n'expirent pas, sauf si vous émettez une demande de révocation spécifique, ou si l'utilisateur décide de révoquer l'accès sur la page Sites autorisés de son compte YouTube.

Authentification ClientLogin pour les applications installées

L'authentification ClientLogin est utilisée dans les applications installées qui peuvent stocker ou interroger votre utilisateur pour connaître son nom d'utilisateur et son mot de passe. Pour utiliser cette forme d'authentification, appelez la méthode ProgrammaticLogin de YouTubeService héritée de la classe gdata.service.GDataService, en spécifiant l'ID et le mot de passe de l'utilisateur au nom duquel votre client envoie la requête d'authentification.

yt_service = gdata.youtube.service.YouTubeService()
yt_service.email = 'jo@gmail.com'
yt_service.password = 'mypassword'
yt_service.source = 'my-example-application'
yt_service.ProgrammaticLogin()

Une fois les identifiants définis, l'objet YouTubeService peut être utilisé pour traiter toutes les requêtes suivantes. Pour effectuer des importations et des requêtes d'écriture (ajouter des commentaires, etc.) à l'API YouTube, assurez-vous de transmettre également votre clé de développeur et votre ID client à l'objet yt_service lors de l'authentification:

# A complete client login request
yt_service.email = 'jo@gmail.com'
yt_service.password = 'mypassword'
yt_service.source = 'my-example-application'
yt_service.developer_key = 'ABC123...'
yt_service.client_id = 'my-example-application'
yt_service.ProgrammaticLogin()

L'objet YouTubeService définit automatiquement les en-têtes X-GData-Key et X-GData-Client corrects lorsque les attributs developer_key et client_id sont définis.

Remarque:Veuillez consulter la documentation sur l'authentification des API Google Data pour en savoir plus sur les mécanismes AuthSub et ClientLogin.

Comprendre les flux et les entrées vidéo

L'API YouTube Data fournit plusieurs flux vidéo qui représentent des listes de vidéos, comme les flux standards, les vidéos mises en ligne, les abonnements et les favoris. L'URL de chaque flux est documentée dans le Guide de référence.

Afficher un flux de vidéos

Dans l'API YouTube, de nombreux flux sont constitués d'entrées vidéo. Ces flux peuvent simplement être modélisés sous la forme d'objets gdata.youtube.YouTubeVideoFeed, chacun contenant un certain nombre d'objets gdata.youtube.YouTubeVideoEntry. Chaque entrée correspond à une seule vidéo sur YouTube et contient des informations la concernant.

Pour récupérer une liste de vidéos, vous devez structurer une URL pointant vers un flux vidéo, puis traiter les entrées une par une, comme dans le code suivant:

def GetAndPrintVideoFeed(uri):
  yt_service = gdata.youtube.service.YouTubeService()
  feed = yt_service.GetYouTubeVideoFeed(uri)
  for entry in feed.entry:
    PrintEntryDetails(entry) # full documentation for this function

La section Récupérer et rechercher des vidéos détaille de nombreuses URL de flux courantes et explique comment récupérer différents flux vidéo.

Récupérer une vidéo spécifique

Vous pouvez récupérer uniquement les informations d'une vidéo spécifique si vous connaissez son ID. L'URL d'entrée est basée sur l'ID vidéo:

http://gdata.youtube.com/feeds/api/videos/videoID

Le code suivant récupère un gdata.youtube.YouTubeVideoEntry correspondant à une vidéo sur YouTube:

entry = yt_service.GetYouTubeVideoEntry(video_id='the0KZLEacs')

Contenu de la vidéo

De nombreuses métadonnées peuvent être extraites d'un objet gdata.youtube.YouTubeVideoEntry, telles que des vignettes, des URL de lecteur et la durée de la vidéo. Le code suivant montre comment accéder à certaines de ces informations. La bibliothèque cliente Python extrait la plupart de ces fonctionnalités en mappant des éléments XML en classes. La plupart des informations importantes concernant une entrée YouTubeVideoEntry sont disponibles auprès des enfants de l'attribut media (contenant un objet gdata.media.Group) dans l'entrée (représentant l'élément XML media:group). Vous trouverez ci-dessous un exemple de récupération des métadonnées de vidéo:

def PrintEntryDetails(entry):
  print 'Video title: %s' % entry.media.title.text
  print 'Video published on: %s ' % entry.published.text
  print 'Video description: %s' % entry.media.description.text
  print 'Video category: %s' % entry.media.category[[]0].text
  print 'Video tags: %s' % entry.media.keywords.text
  print 'Video watch page: %s' % entry.media.player.url
  print 'Video flash player URL: %s' % entry.GetSwfUrl()
  print 'Video duration: %s' % entry.media.duration.seconds

  # non entry.media attributes
  print 'Video geo location: %s' % entry.geo.location()
  print 'Video view count: %s' % entry.statistics.view_count
  print 'Video rating: %s' % entry.rating.average

  # show alternate formats
  for alternate_format in entry.media.content:
    if 'isDefault' not in alternate_format.extension_attributes:
      print 'Alternate format: %s | url: %s ' % (alternate_format.type,
                                                 alternate_format.url)

  # show thumbnails
  for thumbnail in entry.media.thumbnail:
    print 'Thumbnail url: %s' % thumbnail.url

Remarque : Pour savoir comment générer les informations requises pour intégrer une vidéo à un lecteur dans votre page, consultez le guide du protocole.

Récupérer et rechercher des vidéos

Récupérer des flux standards

L'API YouTube Data fournit un flux standard des vidéos YouTube les plus populaires. L'API était auparavant compatible avec d'autres flux standards, qui sont désormais obsolètes. Pour en savoir plus, consultez le Guide du développeur.

L'URL du flux des vidéos les plus populaires sur YouTube est au format suivant:

http://gdata.youtube.com/feeds/api/standardfeeds/most_popular

Remarque : Vous pouvez également récupérer des flux standards régionaux en spécifiant un identifiant régional au format http://gdata.youtube.com/feeds/api/standardfeeds/localeID/feedID. Par exemple, les vidéos les plus populaires au Japon sont les suivantes: http://gdata.youtube.com/feeds/api/standardfeeds/JP/most_popular. Pour obtenir la liste complète des identifiants régionaux supposés, veuillez consulter le guide de référence.

def PrintVideoFeed(feed):
  for entry in feed.entry:
    PrintEntryDetails(entry)

def GetAndPrintFeedByUrl:
  yt_service = gdata.youtube.service.YouTubeService()

  # You can retrieve a YouTubeVideoFeed by passing in the URI
  uri = 'http://gdata.youtube.com/feeds/api/standardfeeds/JP/most_popular'
  PrintVideoFeed(yt_service.GetYouTubeVideoFeed(uri))

Récupérer des vidéos mises en ligne par un utilisateur spécifique

Chaque utilisateur YouTube est associé à un flux vidéo correspondant aux vidéos qu'il a mises en ligne, à l'adresse http://gdata.youtube.com/feeds/api/users/username/uploads. Le code suivant montre comment récupérer et afficher un flux envoyé par un utilisateur:

def GetAndPrintUserUploads(username):
  yt_service = gdata.youtube.service.YouTubeService()
  uri = 'http://gdata.youtube.com/feeds/api/users/%s/uploads' % username
  PrintVideoFeed(yt_service.GetYouTubeVideoFeed(uri))

Remarque : Vous pouvez également utiliser la chaîne "par défaut" à la place de username pour récupérer les vidéos de l'utilisateur actuellement authentifié.

Pour récupérer les vidéos similaires, transmettez l'ID vidéo de l'objet gdata.youtube.YouTubeVideoEntry à la méthode GetYouTubeRelatedVideoFeed de l'objet gdata.youtube.service.YouTubeService. Cela récupère un objet YouTubeVideoFeed contenant des entrées associées.

related_feed = yt_service.GetYouTubeRelatedVideoFeed(video_id='abc123')

Rechercher des vidéos

L'API YouTube Data vous permet de demander un ensemble d'entrées correspondant aux critères spécifiés, par exemple pour demander des entrées vidéo publiées par un auteur donné, par format vidéo ou contenant un mot clé particulier. Pour ce faire, vous devez créer un objet gdata.service.YouTubeVideoQuery avec vos critères de recherche spécifiques et le transmettre à la méthode YouTubeQuery de gdata.youtube.service.YouTubeService.

L'exemple ci-dessous montre comment effectuer une requête de recherche. Les résultats sont triés en fonction du nombre de vues, y compris des vidéos dont l'accès est limité (appelé "Racy" par l'API):

def SearchAndPrint(search_terms):
  yt_service = gdata.youtube.service.YouTubeService()
  query = gdata.youtube.service.YouTubeVideoQuery()
  query.vq = search_terms
  query.orderby = 'viewCount'
  query.racy = 'include'
  feed = yt_service.YouTubeQuery(query)
  PrintVideoFeed(feed)

La classe et les sous-classes gdata.service.Query, comme YouTubeVideoQuery, sont responsables de la construction des URL de flux. L'élément VideoQuery ci-dessus construit une URL équivalente à celle-ci:

http://gdata.youtube.com/feeds/api/videos?vq=<searchTerms>&racy=include&orderby=viewCount

Voici quelques-unes des propriétés YouTubeVideoQuery les plus courantes pour définir des paramètres de recherche :

author
Définit l'auteur de l'entrée. L'auteur est synonyme de nom d'utilisateur YouTube.
format
Spécifie un format vidéo. Accepte les paramètres numériques permettant de spécifier l'un des deux types d'URL de streaming RTSP pour la lecture de vidéos mobiles ou une URL HTTP vers le lecteur Flash intégrable.
racy
Indique si le contenu soumis à des restrictions doit être inclus dans les résultats. Accepte uniquement deux paramètres : "include" ou "exclude".
max_results
Définit le nombre maximal d'entrées à renvoyer simultanément.
start_index
Définit l'index de base 1 du premier résultat à récupérer (pour la pagination).
orderby
Définit l'ordre dans lequel répertorier les entrées, par exemple relevance, viewCount, published ou rating.
time
Définit la période d'affichage des résultats de flux standards sur today, this_week, this_month ou all_time.
vq
Définit un terme de requête de recherche. Recherche la chaîne spécifiée dans toutes les métadonnées de la vidéo, telles que les titres, les tags et les descriptions.

Remarque:Pour en savoir plus sur les paramètres de requête, consultez le Guide de référence de l'API YouTube Data et le Guide de référence des API de données Google.

Recherche à l'aide des catégories et des mots clés

Vous pouvez limiter les résultats de recherche pour n'afficher que les vidéos qui correspondent à un ensemble donné de catégories et de mots clés. Le guide de référence vous explique comment spécifier des catégories YouTube prédéfinies (Musique, Personnes et Blogs, etc.) et des mots clés (tags) définis par l'utilisateur.

Le code suivant montre comment effectuer une recherche à l'aide de mots clés (tags) en remplaçant les termes de recherche par minuscules. Remarque: Certains mots (comme "comédie") peuvent être à la fois une catégorie YouTube et un mot clé. Par conséquent, les requêtes de catégorie et de mot-clé utilisent la convention selon laquelle un mot commençant par une majuscule ("Comédie") dénote une catégorie YouTube, tandis qu'un mot minuscule ("comédie") désigne un mot-clé.

def SearchAndPrintVideosByKeywords(list_of_search_terms):
  yt_service = gdata.youtube.service.YouTubeService()
  query = gdata.youtube.service.YouTubeVideoQuery()
  query.orderby = 'viewCount'
  query.racy = 'include'
  for search_term in list_of_search_terms:
    new_term = search_term.lower()
    query.categories.append('/%s' % new_term)
  feed = yt_service.YouTubeQuery(query)
  PrintVideoFeed(feed)

Rechercher par tags de développeur

Les tags de développeur sont des mots clés supplémentaires cachés qu'un développeur peut utiliser pour ajouter des tags à du contenu importé via son application par les utilisateurs finaux. Les tags de développeur sont mis en correspondance avec la clé de développeur définie dans les en-têtes lors de l'importation. Ces mots clés ne seront pas visibles par le public et pourront être utilisés pour récupérer des vidéos. Pour rechercher des vidéos en fonction d'un tag de développeur spécifique, envoyez une requête générale d'API YouTube Data à l'aide de votre clé de développeur. Veillez à spécifier le schéma de catégorie et le tag de développeur auxquels les vidéos doivent correspondre. Vous pouvez récupérer un flux de vidéos correspondant à votre tag de développeur ("votre_tag_ici" dans notre exemple) à partir de l'URL ci-dessous:

developer_tag_uri = 'http://gdata.youtube.com/feeds/videos/-/%7Bhttp%3A%2F%2Fgdata.youtube.com%2Fschemas%2F2007%2Fdevelopertags.cat%7Dyour_tag_here'
yt_service = gdata.youtube.service.YouTubeService()
PrintVideoFeed(yt_service.GetYouTubeVideoFeed(developer_tag_uri))

Mettre en ligne des vidéos

Consultez les schémas du guide du protocole pour avoir une vue d'ensemble du processus de mise en ligne. Vous pouvez mettre en ligne des vidéos de deux manières:

  • soit en mettant en ligne la vidéo directement depuis vos serveurs via la méthode d'importation directe.
  • ou envoyer d'abord les métadonnées, puis demander à l'utilisateur de mettre en ligne la vidéo directement sur YouTube via la méthode de mise en ligne basée sur un navigateur

Importation directe

Pour mettre en ligne une vidéo, vous devez d'abord construire un nouvel objet gdata.youtube.YouTubeVideoEntry, en lui transmettant un objet gdata.media.Group contenant les métadonnées requises. L'exemple suivant montre comment mettre en ligne la vidéo Quicktime "mytestmovie.mov" sur YouTube avec les propriétés suivantes:

PropriétéValeur
TitleMon film test
CatégorieAutomatiques
Mots clésvoitures, drôle
DescriptionMa description
Nom de fichiermytestmovie.mov
Type de fichier MIMEvideo/quicktime
Vidéo privée ?false
Lieu de tournage de la vidéo37,-122 (lat,long)
Tags de développeurmydevelopertag, autredéveloppeurtag

Le code ci-dessous crée un YouTubeVideoEntry vide à importer. La méthode InsertVideoEntry sur YouTubeService nécessite les paramètres suivants :

  • video_entry : objet gdata.youtube.VideoEntry contenant des métadonnées
  • filename_or_handle : objet de type fichier ou nom de fichier à partir duquel la vidéo est lue
  • youtube_username : chaîne facultative spécifiant le nom d'utilisateur sur lequel cette vidéo doit être mise en ligne. Bien entendu, votre compte doit disposer des autorisations appropriées. Le compte de l'utilisateur actuellement authentifié est utilisé par défaut.
  • content_type : chaîne facultative spécifiant le type MIME de la vidéo à importer.
Notez que ces exemples supposent que la variable yt_service fait référence à un objet YouTubeService entièrement authentifié.

# prepare a media group object to hold our video's meta-data
my_media_group = gdata.media.Group(
  title=gdata.media.Title(text='My Test Movie'),
  description=gdata.media.Description(description_type='plain',
                                      text='My description'),
  keywords=gdata.media.Keywords(text='cars, funny'),
  category=[[]gdata.media.Category(
      text='Autos',
      scheme='http://gdata.youtube.com/schemas/2007/categories.cat',
      label='Autos')],
  player=None
)


# prepare a geo.where object to hold the geographical location
# of where the video was recorded
where = gdata.geo.Where()
where.set_location((37.0,-122.0))

# create the gdata.youtube.YouTubeVideoEntry to be uploaded
video_entry = gdata.youtube.YouTubeVideoEntry(media=my_media_group,
                                              geo=where)

# set the path for the video file binary
video_file_location = '/path/to/my/file.mov'

new_entry = yt_service.InsertVideoEntry(video_entry, video_file_location)

Si vous souhaitez ajouter des tags facultatifs à notre vidéo à l'aide de tags (pour en savoir plus, consultez la section Rechercher par tags de développeur), nous aurions pu utiliser la méthode AddDeveloperTags avant d'appeler InsertVideoEntry :

developer_tags = [[]'some_tag_01', 'another_tag']
video_entry.AddDeveloperTags(developer_tags)

Remarque: Pour importer des vidéos en tant que vidéos privées, un attribut privé doit être transmis à gdata.media.Group:

my_media_group = gdata.media.Group(
  title=gdata.media.Title(text='My Test Movie'),
  description=gdata.media.Description(description_type='plain',
                                      text='My description'),
  keywords=gdata.media.Keywords(text='cars, funny'),
  category=[[]gdata.media.Category(
      text='Autos',
      scheme='http://gdata.youtube.com/schemas/2007/categories.cat',
      label='Autos')],
  player=None,
  private=gdata.media.Private()
)

video_entry = gdata.youtube.YouTubeVideoEntry(media=my_media_group)

# assuming that video_file_location points to a valid path
new_entry = yt_service.InsertVideoEntry(video_entry, video_file_location)

Importation via navigateur

La mise en ligne par navigateur est presque identique à l'importation directe, sauf que vous n'importez pas le fichier binaire de la même requête que celle que vous utilisez pour envoyer les métadonnées de la vidéo. Il vous suffit de créer un YouTubeVideoEntry contenant uniquement des métadonnées. Cette vidéo est ensuite publiée sur un lien spécial du serveur d'API YouTube. La réponse XML contient un token et un url, qui peuvent ensuite être utilisés pour importer le fichier binaire à l'aide d'un formulaire HTML standard.

# create media group as usual
my_media_group = gdata.media.Group(
  title=gdata.media.Title(text='My Test Movie'),
  description=gdata.media.Description(description_type='plain',
                                      text='My description'),
  keywords=gdata.media.Keywords(text='cars, funny'),
  category=[[]gdata.media.Category(
      text='Autos',
      scheme='http://gdata.youtube.com/schemas/2007/categories.cat',
      label='Autos')],
  player=None
)

# create video entry as usual
video_entry = gdata.youtube.YouTubeVideoEntry(media=my_media_group)

# upload meta data only
response = yt_service.GetFormUploadToken(video_entry)

# parse response tuple and use the variables to build a form (see next code snippet)
post_url = response[[]0]
youtube_token = response[[]1]

Le code ci-dessus imprime un lien et un jeton permettant de créer un formulaire HTML à afficher dans le navigateur de l'utilisateur. Vous trouverez ci-dessous un exemple de formulaire simple avec youtube_token représentant le contenu de l'élément de jeton renvoyé, tel qu'il est récupéré à partir de YouTubeVideoEntry ci-dessus. Pour que l'utilisateur soit redirigé vers votre site Web après avoir envoyé le formulaire, veillez à ajouter un paramètre next à post_url (comme illustré ci-dessous), qui fonctionnera de la même manière que le paramètre next d'un lien AuthSub. La seule différence est qu'au lieu d'un jeton à usage unique, une variable status et une variable id sont renvoyées en tant que paramètres d'URL.

next = 'http://example.com/post_video_upload.pyc'

form = """<form action="%s?nexturl=%s" method="post" enctype="multipart/form-data">
          <input name="file" type="file"/>
          <input name="token" type="hidden" value="%s"/>
          <input value="Upload Video File" type="submit" />
          </form>""" % (post_url, next, youtube_token)

Une réponse indiquant que l'importation a réussi se présente comme suit:

http://example.com/post_video_upload.pyc?status=200&id=ABC123

Le paramètre status renvoie l'état de la transaction HTTP de la transaction d'importation. Le paramètre id renvoie l'ID vidéo YouTube attribué à la vidéo mise en ligne.

Vérifier l'état de la mise en ligne

Une fois mise en ligne, la vidéo apparaît immédiatement dans le flux de mise en ligne d'un utilisateur authentifié. Cependant, elle ne sera pas publique sur le site tant qu'elle n'aura pas été traitée. De plus, les vidéos qui ont été refusées ou qui n'ont pas pu être mises en ligne n'apparaissent que dans le flux de vidéos mises en ligne par l'utilisateur authentifié. Le code suivant vérifie l'état d'un YouTubeVideoEntry pour voir s'il n'est pas encore en ligne ou s'il a été rejeté.

upload_status = yt_service.CheckUploadStatus(new_entry)

if upload_status is not None:
  video_upload_state = upload_status[[]0]
  detailed_message = upload_status[[]1]

Mettre à jour et supprimer des vidéos

Mise à jour des informations sur la vidéo...

Pour mettre à jour les métadonnées vidéo, il vous suffit de mettre à jour l'objet YouTubeVideoEntry, puis d'utiliser la méthode UpdateVideoEntry des objets YouTubeService. Cette méthode utilise comme paramètre un YouTubeVideoEntry contenant des métadonnées mises à jour.

# assuming we have a video entry that was just posted in our 'new_entry' variable
new_entry.media.title.text = 'My Updated Video Title'
new_entry.media.description.text = 'Just updated'

updated_entry = yt_service.UpdateVideoEntry(new_entry)

Suppression d'une vidéo

La suppression d'une vidéo est très simple et nécessite simplement d'appeler la fonction DeleteVideoEntry de l'objet YouTubeService.

response = yt_service.DeleteVideoEntry(entry_to_be_deleted)

if response:
  print 'Video successfully deleted!'

Utiliser les fonctionnalités destinées à la communauté

Ajouter une note

Pour évaluer une vidéo, utilisez la méthode AddRating de l'objet YouTubeService. Vous ne pouvez pas évaluer vos propres vidéos, et la note doit être comprise entre 1 et 5 (inclus):

video_id_to_rate = 'Ncakifd_16k'
video_entry = yt_service.GetYouTubeVideoEntry(video_id=video_id_to_rate)
response = yt_service.AddRating(3, video_entry)

Commentaires

Récupérer des commentaires sur une vidéo

Avec un objet YouTubeVideoEntry ou un ID vidéo simple, vous pouvez récupérer et imprimer un flux contenant les commentaires de la vidéo à l'aide de la méthode GetYouTubeVideoCommentFeed de l'objet YouTubeService. Le flux obtenu est un objet gdata.youtube.YouTubeCommentFeed composé d'objets gdata.youtube.YouTubeCommentEntry. Le flux peut être analysé comme n'importe quel autre flux:

video_id = 'ABC123...'
comment_feed = yt_service.GetYouTubeVideoCommentFeed(video_id=video_id)

for comment_entry in comment_feed.entry:
  print comment_entry.ToString()

Ajout d'un commentaire

Pour ajouter un nouveau commentaire, utilisez la méthode AddComment de l'objet YouTubeService. La méthode nécessite un objet YouTubeVideoEntry complet qui doit être commenté, ainsi qu'une chaîne qui représente le commentaire:

my_comment = 'what a boring test video'
video_id = '9g6buYJTt_g'
video_entry = yt_service.GetYouTubeVideoEntry(video_id=video_id)
yt_service.AddComment(comment_text=my_comment, video_entry=video_entry)

Commentaires vidéo

Un commentaire vidéo YouTube est une vidéo qui a été associée en tant que réponse à une deuxième vidéo. La fonctionnalité de commentaires vidéo a été supprimée, comme expliqué dans cette annonce. Même si les commentaires vidéo existants sont toujours disponibles, YouTube ne permet plus de récupérer la liste des commentaires vidéo d'une vidéo, de mettre en ligne de nouveaux commentaires vidéo ni de supprimer des commentaires vidéo. Vous pouvez toutefois supprimer la vidéo utilisée dans un commentaire vidéo. Par conséquent, ces fonctions ne sont plus prises en charge dans l'API.

Les requêtes API pour les opérations de réponse vidéo renvoient désormais les éléments suivants:

  • Une demande de récupération des commentaires vidéo sur une vidéo renvoie une liste vide.
  • Une requête d'ajout d'un commentaire vidéo renvoie un code de réponse HTTP 403.
  • Une requête de suppression d'un commentaire vidéo renvoie un code de réponse HTTP 403.

Signalement d'une vidéo

Pour déposer une réclamation concernant une vidéo, utilisez la méthode AddComplaint sur l'objet YouTubeService. Le terme de la réclamation doit être une catégorie valide. Pour en savoir plus, consultez la section Ajout d'une réclamation dans le guide du protocole.

video_id_to_flag = 'Ncakifd_16k'
complaint_term = 'VIOLENCE'
complaint_text = ('Please ignore this complaint. '
                  'I\'m testing a YouTube API and needed to issue '
                  'a complaint to test the add complaint function. ')

response = yt_service.AddComplaint(complaint_text, complaint_term, video_id_to_flag)

Enregistrer et collecter des vidéos

Vidéos favorites

Récupérer les vidéos préférées d'un utilisateur

Les utilisateurs de YouTube peuvent choisir de marquer leurs vidéos préférées. L'emplacement général du flux favori d'un utilisateur est l'URL suivante.

http://gdata.youtube.com/feeds/api/users/username/favorites

Pour récupérer les vidéos préférées d'un utilisateur, utilisez la méthode GetUserFavoritesFeed de l'objet YouTubeService. La méthode utilise une chaîne facultative comme paramètre représentant le nom d'utilisateur YouTube de l'utilisateur dont le flux favori doit être récupéré.

favorite_feed = yt_service.GetUserFavoritesFeed(username='gdpython')

Le flux renvoyé est un flux vidéo standard contenant des objets YouTubeVideoEntry.

Remarque:Vous pouvez également transmettre la chaîne default pour récupérer les favoris de l'utilisateur actuellement authentifié. Il s'agit du comportement par défaut de la méthode GetUserFavoritesFeed si aucun nom d'utilisateur n'est fourni.

Ajout d'un favori

Pour ajouter une vidéo préférée, utilisez la méthode AddVideoEntryToFavorites de l'objet YouTubeService. Les paramètres sont les YouTubeVideoEntry qui doivent être ajoutés, et éventuellement le nom d'utilisateur auquel les favoris doivent être ajoutés (l'utilisateur actuellement authentifié est la valeur par défaut).

video_id = 'Ncakifd_16k'
video_entry = yt_service.GetYouTubeVideoEntry(video_id=video_id)
response = yt_service.AddVideoEntryToFavorites(video_entry)

# The response, if successfully posted is a YouTubeVideoEntry
if isinstance(response, gdata.youtube.YouTubeVideoEntry):
  print 'Video successfully added to favorites'

Suppression d'un favori

Pour supprimer un favori, il vous suffit d'utiliser la méthode DeleteVideoEntryFromFavorites de l'objet YouTubeService.

video_id = 'Ncakifd_16k'
response = yt_service.DeleteVideoEntryFromFavorites(video_id)
if response is True:
  print 'Video deleted from favorites'

Playlists

Chaque utilisateur dispose d'un flux contenant toutes les playlists qu'il a créées. Chaque playlist est associée à un flux contenant toutes les vidéos qu'elle contient.

Récupérer des playlists d'utilisateurs

Pour récupérer manuellement la liste de toutes les playlists d'un utilisateur, utilisez l'URL suivante:

http://gdata.youtube.com/feeds/api/users/username/playlists

La bibliothèque cliente Python vous permet d'utiliser la méthode GetYouTubePlaylistFeed de l'objet YouTubeService:

playlist_feed = yt_service.GetYouTubePlaylistFeed(username='gdpython')

# instead of passing in a username, you can also pass the URI to the playlist feed:
playlist_feed = yt_service.GetYouTubePlaylistFeed(uri='http://gdata.youtube.com/feeds/api/users/default/playlists')

Remarque:Au lieu de transmettre un nom d'utilisateur spécifique (par exemple "gdpython" dans l'exemple ci-dessus), vous pouvez également transmettre la chaîne 'default' pour faire référence à l'utilisateur actuellement authentifié.

Un gdata.youtube.YouTubePlaylistFeed représente un flux d'objets gdata.youtube.YouTubePlaylistEntry. Elles font référence aux playlists individuelles d'un utilisateur. Les entrées vidéo d'une playlist particulière sont représentées en tant qu'objets gdata.youtube.YouTubePlaylistVideoEntry. Ces objets sont très semblables aux objets gdata.youtube.YouTubeVideoEntry standards, à quelques exceptions près. Vous pouvez appliquer des titres et des descriptions personnalisés aux vidéos, et un champ "Position" indique leur emplacement dans la playlist.

Récupérer des informations sur la playlist

Une fonction YouTubePlaylistEntry (correspondant à une playlist spécifique) vous permet d'obtenir une YouTubePlaylistVideoFeed contenant des objets YouTubePlaylistVideoEntry. Comme expliqué ci-dessus, ces objets représentent des vidéos individuelles dans une playlist (avec des titres et une description personnalisés facultatifs). Pour obtenir ce flux, transmettez l'URI de votre playlist à la méthode GetYouTubePlaylistVideoFeed de l'objet YouTubeService:

# a typical playlist URI
playlist_uri = 'http://gdata.youtube.com/feeds/api/playlists/BCB3BB96DF51B505'

playlist_video_feed = yt_service.GetYouTubePlaylistVideoFeed(uri=playlist_uri)

# iterate through the feed as you would with any other
for playlist_video_entry in playlist_video_feed.entry:
  print playlist_video_entry.title.text

Ajouter une playlist

Pour ajouter une playlist, utilisez simplement la méthode AddPlaylist de l'objet YouTubeService. Cette méthode utilise les paramètres suivants: playlist_title, playlist_description (les deux chaînes) et une valeur booléenne facultative pouvant être définie sur True si la playlist doit être marquée comme privée.

new_public_playlistentry = yt_service.AddPlaylist('my new playlist', 'a new playlist')

if isinstance(new_public_playlistentry, gdata.youtube.YouTubePlaylistEntry):
  print 'New playlist added'

# adding a private playlist
new_private_playlistentry = yt_service.AddPlaylist('new private playlist', 'a new private playlist', True)

if isinstance(new_private_playlistentry, gdata.youtube.YouTubePlaylistEntry):
  print 'New private playlist added'

Modifier une playlist

Pour modifier une playlist, utilisez la méthode UpdatePlaylist de l'objet YouTubeService. La méthode utilise les paramètres suivants: l'ID de la playlist à modifier, un nouveau titre, une nouvelle description, une valeur booléenne facultative pour marquer la playlist comme privée et une chaîne facultative indiquant le nom d'utilisateur propriétaire de la playlist. La chaîne renvoie par défaut à l'utilisateur actuellement authentifié.

# here we are updating a public playlist with a new title while also making it private

# we assume that playlist_to_be_updated here represents a YouTubePlaylistEntry object
playlist_entry_id = playlist_to_be_updated.id.text.split('/')[[]-1]

# we want to keep the original description for the playlist so we store it first
original_description = playlist_to_be_updated.description.text

updated_playlist = yt_service.UpdatePlaylist(playlist_entry_id,
                                             'a new updated title',
                                             original_playlist_description,
                                             playlist_private=True)

Ajouter la vidéo à la playlist

Vous pouvez ajouter une vidéo à une playlist à l'aide de la méthode AddPlaylistVideoEntryToPlaylist de l'objet YouTubeService. Le code ci-dessous ajoute une vidéo à une playlist, avec un titre et une description personnalisés.

custom_video_title = 'my test video on my test playlist'
custom_video_description = 'this is a test video on my test playlist'
video_id = 'Ncakifd_16k'
playlist_uri = 'http://gdata.youtube.com/feeds/api/playlists/BCB3BB96DF51B505'

playlist_video_entry = yt_service.AddPlaylistVideoEntryToPlaylist(
    playlist_uri, video_id, custom_video_title, custom_video_description)

if isinstance(playlist_video_entry, gdata.youtube.YouTubePlaylistVideoEntry):
  print 'Video added'

Remarque : Sachez qu'aucun titre ni aucune description personnalisés ne sont requis. Le cas échéant, le titre et la description de la vidéo sont utilisés.

Modifier les informations de la vidéo sur la playlist

Utilisez la méthode UpdatePlaylistVideoEntryMetaData de l'objet YouTubeService pour modifier les métadonnées d'une YouTubePlaylistVideoEntry. Dans l'exemple ci-dessous, nous décidons d'attribuer un nouveau titre personnalisé à notre vidéo et de la placer en première position (position 1) dans notre playlist.

playlist_uri = 'http://gdata.youtube.com/feeds/api/playlists/BCB3BB96DF51B505'
playlist_entry_id = 'B0F29389E537F888'

new_video_title = 'a useful video'
new_video_description = 'updated video description'

updated_playlist_video_entry = yt_service.UpdatePlaylistVideoEntryMetaData(
    playlist_uri, playlist_entry_id, new_video_title, new_video_description, 1)

Remarque:Si vous souhaitez rétablir les métadonnées d'origine de la description et du titre d'une playlist, il vous suffit d'utiliser NULL pour le titre et la description.

Supprimer la vidéo de la playlist

Pour supprimer une vidéo d'une playlist, utilisez la méthode DeletePlaylistVideoEntry de l'objet YouTubeService. Cette méthode nécessite l'URI de la playlist contenant l'entrée à supprimer, ainsi que l'ID de l'entrée:

playlist_uri = 'http://gdata.youtube.com/feeds/api/playlists/BCB3BB96DF51B505'
playlist_entry_id = 'B0F29389E537F888'
response = yt_service.DeletePlaylistVideoEntry(playlist_uri,
                                               playlist_entry_id)
if response is True:
  print 'Entry successfully deleted'

Supprimer une playlist

Pour supprimer une playlist, il vous suffit d'utiliser la méthode DeletePlaylist de l'objet YouTubeService, en transmettant l'URI de la playlist à supprimer:

playlist_uri = 'http://gdata.youtube.com/feeds/api/playlists/BCB3BB96DF51B505'
response = yt_service.DeletePlaylist(playlist_uri)

if response is True:
  print 'Playlist successfully deleted'

Abonnements

Pour récupérer la liste des chaînes, des recherches et des favoris auxquels un utilisateur donné est abonné, utilisez l'URI suivant:

http://gdata.youtube.com/feeds/api/users/username/subscriptions

Remarque : Vous pouvez également transmettre la chaîne default pour récupérer les favoris de l'utilisateur actuellement authentifié.

Récupérer des abonnements utilisateur

Le code suivant montre comment récupérer et imprimer la liste des abonnements d'un utilisateur donné. Les abonnements sont représentés par un gdata.youtube.YouTubeSubscriptionFeed composé d'objets gdata.youtube.YouTubeSubscriptionEntry. Pour récupérer les abonnements, utilisez la méthode GetYouTubeSubscriptionFeed de l'objet YouTubeService, en transmettant l'URI d'un flux d'abonnement ou le nom d'utilisateur dont le flux d'abonnements doit être récupéré. Par défaut, le paramètre de nom d'utilisateur correspond à l'utilisateur actuellement authentifié.

subscription_feed = yt_service.GetYouTubeSubscriptionFeed(username='gdpython')

if isinstance(subscription_feed, gdata.youtube.YouTubeSubscriptionFeed)):
  # given a YouTubeSubscriptionEntry we can determine it's type (channel, favorite, or query)
  for entry in subscription_feed.entry:
    print entry.GetSubscriptionType()

Ajouter un abonnement

Vous pouvez créer un abonnement en insérant une nouvelle YouTubeSubsciptionEntry dans le flux des abonnements de l'utilisateur authentifié. Nous pouvons créer trois types d'abonnements: un abonnement à la chaîne d'un utilisateur (à l'aide de AddSubscriptionToChannel), un abonnement aux favoris d'un utilisateur (à l'aide de AddSubscriptionToFavorites ou un abonnement à un mot clé spécifique (avec AddSubscriptionToQuery). Le code suivant permet d'abonner l'utilisateur authentifié à la chaîne "GoogleDevelopers".

new_subscription = yt_service.AddSubscriptionToChannel(
      username_to_subscribe_to='GoogleDevelopers')

if isinstance(new_subscription, gdata.youtube.YouTubeSubscriptionEntry):
  print 'New subscription added'

Vous pouvez également vous abonner aux favoris de l'utilisateur "GoogleDevelopers" :

new_subscription = yt_service.AddSubscriptionToFavorites(
    username='GoogleDevelopers')
if isinstance(new_subscription, gdata.youtube.YouTubeSubscriptionEntry):
  print 'New subscription added'

Enfin, vous pouvez également vous abonner à des termes de recherche spécifiques. Ici, nous nous sommes abonnés à une requête pour des vidéos avec le tag "python".

new_subscription = yt_service.AddSubscriptionToQuery(query='python')

if isinstance(new_subscription, gdata.youtube.YouTubeSubscriptionEntry):
  print 'New subscription added'

Supprimer un abonnement

Pour supprimer un abonnement utilisateur, utilisez la méthode DeleteSubscription de l'objet YouTubeService.

sample_subscription_uri = ('http://gdata.youtube.com/feeds/api/users/'
                           'gdpython/subscriptions/c0c77ca6102a7479')

response = yt_service.DeleteSubscription(sample_subscription_uri)

if response is True:
  print 'Subscription successfully deleted'

Interaction des utilisateurs

Profils d'utilisateurs

Récupérer le profil d'un utilisateur

Pour récupérer manuellement le profil YouTube d'un utilisateur, vous devez utiliser l'URI suivant:

http://gdata.youtube.com/feeds/api/users/username

Vous pouvez récupérer un gdata.youtube.YouTubeUserEntry avec la méthode GetYouTubeUserEntry de l'objet YouTubeService.

user_entry = yt_service.GetYouTubeUserEntry(username='gdpython')

# we can then write a helper function to print out the user details
def PrintUserEntry(entry):
  # print required fields where we know there will be information
  print 'URI: %s\n' % entry.id.text
  print 'Age: %s\n' % entry.age.text
  print 'Gender: %s\n' % entry.gender.text
  print 'Location: %s\n' % entry.location.text

  # check if there is information in the other fields and if so print it
  if user.first_name: 
    print 'First Name: %s\n' % user.first_name.text
  if user.last_name:
    print 'Last Name: %s\n' % user.last_name.text
  if user.relationship:
    print 'Relationship: %s\n' % user.relationship.text
  if user.description:
    print 'About me: %s\n' % user.description.text
  for link in user.link:
    if link.rel == 'related':
      print 'Website: %s\n' % link.href
  if user.company:
    print 'Company: %s\n' % user.company.text
  if user.occupation:
    print 'Occupation: %s\n' % user.occupation.text
  if user.school:
    print 'School: %s\n' % user.school.text
  if user.hobbies:
    print 'Hobbies: %s\n' % user.hobbies.text
  if user.movies:
    print 'Movies: %s\n' % user.movies.text
  if user.music:
    print 'Music: %s\n' % user.music.text
  if user.books:
    print 'Books: %s\n' % user.books.text
  if user.hometown:
    print 'Hometown: %s\n' % user.hometown.text

Contacts

La liste des contacts d'un utilisateur donné peut être récupérée à partir de l'URL suivante:

http://gdata.youtube.com/feeds/api/users/username/contacts

Récupérer des contacts utilisateur

La méthode GetYouTubeContactFeed de l'objet YouTubeService peut être utilisée pour récupérer un gdata.youtube.YouTubeContactFeed composé d'objets gdata.youtube.YouTubeContactEntry.

contact_feed = yt_service.GetYouTubeContactFeed(username='GoogleDevelopers')
for entry in contact_feed.entry:
  print entry.title.text
  # find the apprpriate category element to find out the contact type
  for category in entry.category:
    if category.scheme == 'http://gdata.youtube.com/schemas/2007/contact.cat':
      print category.term

Ajouter un contact

Pour ajouter un contact au flux d'un utilisateur, utilisez la méthode AddContact de l'objet YouTubeService.

new_contact = yt_service.AddContact(contact_username='GoogleDevelopers')

if isinstance(new_contact, gdata.youtube.YouTubeContactEntry)
  print 'New contact added'

Accepter/Refuser un contact

Pour mettre à jour un contact, utilisez la méthode UpdateContact de l'objet YouTubeService. Cette méthode peut être utilisée pour accepter/refuser les demandes de contact et pour classer les contacts dans la catégorie "Amis" ou "Famille". Dans l'exemple ci-dessous, nous acceptons un contact, puis définissons sa catégorie sur "Famille" :

# in this case user 'gdpython' has requested to be our contact
#so the original contact status is 'pending'
updated_contact = yt_service.UpdateContact('gdpython', 'accepted', 'Family')

if isinstance(updated_contact, gdata.youtube.YouTubeContactEntry)
  print 'New contact added'

Supprimer un contact

Pour supprimer un contact, utilisez la méthode DeleteContact de l'objet YouTubeService en transmettant le nom d'utilisateur du contact que vous souhaitez supprimer.

response = yt_service.DeleteContact(contact_username='gdpython')

if response is True:
  print 'Contact deleted'

Haut de page