2017-09-11 2 views
0

J'essaie de déterminer la meilleure façon d'obtenir l'ID de playlist de téléchargement d'une chaîne en fonction de son ID de chaîne. Par exemple. pour le canal avec channelIDYouTube API: Télécharger uploadID pour la chaîne YouTube

UC9CuvdOVfMPvKCiwdGKL3cQ

Le playlistID de téléchargement correspondant est

UU9CuvdOVfMPvKCiwdGKL3cQ

Notez que le deuxième caractère a changé d'un "C" à un "U"

je peux faire cette transformation par manipulation de chaîne, mais je suis curieux de savoir s'il y a une meilleure façon, moins hacky de trouver l'ID de playlist de téléchargement via l'API officielle youtube.

est ici un code Kotlin qui montre mon problème:

je peux trouver la channelID pour le canal "Jeu Grumps" à travers la recherche youtube api v3 suivant:

  val req = youtube.search().list("snippet"); 
      req.key = {API_KEY} 
      req.q = "Game Grumps" 
      req.type = "channel" 
      val response = req.execute(); 

Le résultat id canal (réponse .items [0] .snippet.channelId) est UC9CuvdOVfMPvKCiwdGKL3cQ

Mais quand je lance ce qui suit pour essayer d'obtenir les vidéos téléchargées par le canal, je dois utiliser la transformée channelID (en commençant par UU au lieu de UC)

  val req = youtube.PlaylistItems().list("snippet") 
      req.playlistId = "UU9CuvdOVfMPvKCiwdGKL3cQ" 
      req.key = {API_KEY} 
      val response = req .execute() 

Si j'utilise le non transformé « UC » channelID, je reçois l'erreur suivante: La liste de lecture identifié avec les demandes paramètre playlistId ne peut pas être trouvé. Au lieu de simplement remplacer le deuxième caractère par un "U", quelle est la méthode la plus robuste (par exemple, l'utilisation de l'API youtube) pour traduire un ChannelID en un PlaylistID (pour les téléchargements depuis ce canal)?

Répondre

1

Je suggère d'utiliser l'API Youtube officielle, au lieu d'essayer de manipuler les chaînes. Vous pouvez suivre les instructions here:

Instructions pour obtenir la vidéo ids pour toutes les vidéos mises en ligne pour un canal V3

  1. Obtenez l'ID de canal pour le canal que vous voulez (vous avez probablement seulement besoin de faire une fois, vous pouvez l'enregistrer)
    • Utilisez search.list
    • Régler le type de canal
    • q au Set nom du yo canal u want
    • Prenez le id de canal (quelque chose comme ceci: « channelId »: « UC0X2VuXXXXXXXXXXXXXXXX »)
  2. Obtenez l'ID de playlist pour les téléchargements de canal en utilisant l'identifiant de canal de l'étape 1 (vous avez probablement seulement besoin de faire cette fois, alors vous pouvez l'enregistrer)
    • Utilisez les canaux.Liste
    • Set id UC0X2VuXXXXXXXXXXXXXXXX de l'étape 1
    • Prenez le uploads clé contentDetails (quelque chose comme ceci: "upload": "UU0XXXXXXXXXXXXXXXXXXXX")
  3. Obtenir les vidéos via les playlistitems dans la liste de lecture en utilisant la id playlist de l'étape 2
    • Utilisez playlistItems.list
    • Set playlistId à UU0XXXXXXXXXXXXXXXXXXXX de l'étape 2
    • Passez par chaque PlaylistI tem et sortir l'id vidéo
+0

Parfait! Pour référence, le "quelque chose comme" uploads "" à l'étape 2 est contentDetails.relatedPlaylists.uploads –