2009-10-05 5 views
6

J'essaie d'obtenir le flux de commentaires d'une entrée vidéo à l'aide de l'API YouTube pour .NET. Je travaille sur un programme en WPF et C#, mais je n'arrive pas à comprendre comment récupérer ce flux.Flux de commentaires de l'API YouTube

J'ai essayé de regarder le YouTube API Developer's Guide, mais il semble qu'il manque des informations sur les Flux de Commentaires (près du bas de la page).

Répondre

-1
YouTubeRequest request = ... // Your request object  
Video v = ... // Your video object 
Feed<Comment> comments = request.GetComments(v); 

comments.entries contiendra tous les commentaires de la vidéo v comme Comment objets, de sorte que vous ne avez pas besoin de jouer avec la nourriture du tout.

1

La version 3 de l'API YouTube a été modifiée. Il existe un nouveau point de terminaison appelé commentThreads/list qui vous permet de renvoyer un fil de commentaires pour une ressource. Si vous souhaitez renvoyer une liste de commentaires sur une ressource vidéo, configurez une requête GET avec part=id,snippet et videoId=[VIDEO_ID]. Je vais utiliser https://www.youtube.com/watch?v=HwNIDcwfRLY comme exemple:

HTTP GET https://www.googleapis.com/youtube/v3/commentThreads?part=id%2Csnippet&videoId=HwNIDcwfRLY&key={YOUR_API_KEY} 

Utilisons le premier commentaire retourné comme un exemple:

{ 
    "kind": "youtube#commentThread", 
    "etag": "\"DsOZ7qVJA4mxdTxZeNzis6uE6ck/jhK_kJqnNF8_fiRI_o7w6ehubv8\"", 
    "id": "z120sfshyxzewt1nx23sevyr1vu1jd2pr04", 
    "snippet": { 
     "videoId": "HwNIDcwfRLY", 
     "topLevelComment": { 
      "kind": "youtube#comment", 
      "etag": "\"DsOZ7qVJA4mxdTxZeNzis6uE6ck/h903NemnXx-8Hfe6lRIYCFERSe4\"", 
      "id": "z120sfshyxzewt1nx23sevyr1vu1jd2pr04", 
      "snippet": { 
      "authorDisplayName": "mach-a-chine seahawksgoonie", 
      "authorProfileImageUrl": "https://lh3.googleusercontent.com/-XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAAA/4252rscbv5M/photo.jpg?sz=50", 
      "authorChannelUrl": "http://www.youtube.com/channel/UCBmJ0sw7plIZHLvhfz7oo_w", 
      "authorChannelId": { 
       "value": "UCBmJ0sw7plIZHLvhfz7oo_w" 
      }, 
      "videoId": "HwNIDcwfRLY", 
      "textDisplay": "", 
      "authorGoogleplusProfileUrl": "https://plus.google.com/102274783439566633837", 
      "canRate": true, 
      "viewerRating": "none", 
      "likeCount": 0, 
      "publishedAt": "2016-02-05T03:42:35.158Z", 
      "updatedAt": "2016-02-05T03:42:35.158Z" 
      } 
     }, 
     "canReply": true, 
     "totalReplyCount": 0, 
     "isPublic": true 
    } 
} 

Notez que le commentaire n'est pas réellement dans cet objet topLevelComment. textDisplay renvoie la chaîne vide, qui correspond à known issue avec l'API YouTube. Nous devons faire une demande supplémentaire à commentThreads/list avec id=[COMMENT_ID], où [COMMENT_ID] est topLevelComment.id:

HTTP GET https://www.googleapis.com/youtube/v3/commentThreads?part=id%2Csnippet&id=z120sfshyxzewt1nx23sevyr1vu1jd2pr04&key={YOUR_API_KEY} 

Le dictionnaire de réponse résultant snippet aura le commentaire de l'utilisateur que la valeur de la clé textDisplay:

"snippet": { 
    "authorDisplayName": "mach-a-chine seahawksgoonie", 
    "authorProfileImageUrl": "https://lh3.googleusercontent.com/-XdUIqdMkCWA/AAAAAAAAAAI/AAAAAAAAAAA/4252rscbv5M/photo.jpg?sz=50", 
    "authorChannelUrl": "http://www.youtube.com/channel/UCBmJ0sw7plIZHLvhfz7oo_w", 
    "authorChannelId": { 
      "value": "UCBmJ0sw7plIZHLvhfz7oo_w" 
    }, 
    "videoId": "HwNIDcwfRLY", 
    "textDisplay": "my next ring tone! yeah boy!\ufeff", 
    "authorGoogleplusProfileUrl": "https://plus.google.com/102274783439566633837", 
    "canRate": true, 
    "viewerRating": "none", 
    "likeCount": 0, 
    "publishedAt": "2016-02-05T03:42:35.158Z", 
    "updatedAt": "2016-02-05T03:42:35.158Z" 
    } 
} 

Le le commentaire est: "ma prochaine sonnerie!"

Notez que vous pouvez également transmettre une liste de chaînes de 0 à 50 objets séparés id ou videoId séparés par des virgules pour récupérer les appels par API.

Voir le guide Retrieve comments for a video pour plus d'informations et un exemple de code.