Utiliser OAuth 2.0 pour les comptes de service

Remarque:L'API YouTube Content ID est destinée aux partenaires de contenu YouTube. Elle n'est pas accessible à tous les développeurs ni à tous les utilisateurs YouTube. Si l'API YouTube Content ID n'apparaît pas dans la console Google APIs, consultez le Centre d'aide YouTube pour en savoir plus sur le Programme Partenaire YouTube.

Contexte

Un compte de service est un compte Google permettant d'autoriser des appels d'API sans intervention de l'utilisateur. Contrairement aux autres flux OAuth 2.0, l'authentification et l'autorisation de l'accès à l'aide du flux OAuth 2.0 pour les comptes de service ne s'effectuent pas dans un navigateur Web. OAuth 2.0 pour les comptes de service s'appuie à la place sur des signatures cryptographiques pour autoriser l'accès. Tant que votre code a accès à la clé cryptographique sous-jacente, il peut continuer à effectuer des appels d'API sans se soucier des jetons d'actualisation et d'accès. C'est la solution idéale pour les applications automatisées qui s'exécutent sur des serveurs sans intervention humaine.

Vous pouvez désormais utiliser le parcours OAuth 2.0 pour les comptes de service afin d'autoriser les requêtes de l'API YouTube Content ID. Vous pouvez également suivre cette procédure pour autoriser les appels des API YouTube Data et YouTube Analytics vers des méthodes compatibles avec les paramètres de délégation. Dans tous ces cas, une application qui utilise cette procédure autorise la requête API en tant que partenaire de contenu YouTube (à l'aide d'un compte CMS YouTube) plutôt qu'en tant que propriétaire de chaîne YouTube.

Configurer votre compte de service

Les captures d'écran suivantes illustrent le processus de création d'un compte de service associé à votre projet d'API. Vérifiez que les API appropriées (YouTube Data version 3, API YouTube Analytics, API YouTube Content ID, etc.) sont déjà activées.

  1. Accédez à https://cloud.google.com/console et sélectionnez votre projet d'API existant (ou créez-en un).
  2. Sur la barre latérale de gauche, sélectionnez API et authentification.
  3. Vérifiez que l'API YouTube Content ID est activée pour votre projet.
  4. Dans la barre latérale située à gauche, sélectionnez Identifiants.
  5. Cliquez sur le bouton Créer un ID client.
  6. Choisissez Compte de service dans la liste des options, puis cliquez sur Créer un ID client. La clé privée de votre compte de service sera téléchargée sur votre ordinateur. Il s'agit de la seule copie de la clé. Vous devez l'enregistrer dans un emplacement sécurisé et lisible par votre application.
  7. Notez l'adresse e-mail du compte de service. L'adresse e-mail apparaît sur la page Identifiants. Vous aurez besoin de l'adresse pour autoriser votre compte de service à accéder à votre compte CMS YouTube.
  8. Accédez à la page https://www.youtube.com/content_owner_users et cliquez sur le bouton Nouvel utilisateur.
  9. Saisissez l'adresse e-mail du compte de service que vous avez obtenue à l'étape 7 dans le champ Adresse e-mail, puis sélectionnez le rôle approprié pour l'utilisateur. Cliquez ensuite sur le bouton Inviter.
  10. Votre compte de service accepte automatiquement l'invitation et peut ensuite accéder aux API YouTube agissant au nom de votre compte CMS YouTube.
  11. Suivez les instructions relatives au flux des comptes de service OAuth 2.0 dans le guide Autoriser les requêtes afin d'autoriser les requêtes à l'aide de votre compte de service.

Effectuer des appels d'API

Les bibliothèques clientes de la plupart des langages sont compatibles de façon native avec le flux OAuth 2.0 pour les comptes de service. Vous devez être en mesure de suivre les exemples de la documentation de la bibliothèque pour obtenir une autorisation de base avec les champs d'application d'API YouTube appropriés.

Avant tout, n'oubliez pas que vous devez utiliser les paramètres de délégation appropriés pour agir au nom d'une chaîne associée à votre compte CMS. Pour afficher la liste des chaînes associées à votre compte CMS, accédez à la page https://cms.youtube.com/edit_user_accounts.