Implementación: Comentarios

El método comments.markAsSpam ya no es compatible.

En los siguientes ejemplos, se muestra cómo usar la API de YouTube Data (v3) para realizar funciones relacionadas con los comentarios.

Recupera comentarios de un video

Para recuperar una lista de conversaciones de comentarios de un video, llama al método commentThreads.list. Establece los siguientes valores de parámetros en tu solicitud:

  • part: Establece el valor del parámetro en snippet si solo quieres recuperar los comentarios de nivel superior o en snippet,replies si también quieres recuperar las respuestas a los comentarios de nivel superior. (Ten en cuenta que un recurso commentThread no necesariamente contiene todas las respuestas a un comentario, y debes usar el método comments.list si quieres recuperar todas las respuestas para un comentario en particular).

  • videoId: Especifica el ID de video de YouTube del video para el que recuperas comentarios.

La siguiente solicitud recupera comentarios y respuestas a comentarios relacionados con el video del discurso de apertura en la conferencia Google I/O 2014, que tiene el ID de video wtLJPvx7-ys.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.commentThreads.list?
part=snippet,replies
&videoId=wtLJPvx7-ys

Recupera comentarios sobre un canal o asociados a él

La API admite la capacidad de recuperar conversaciones de comentarios sobre un canal o todas las conversaciones de comentarios asociadas a un canal. En este último caso, la API podría contener comentarios sobre el canal o sobre cualquiera de los videos del canal.

La siguiente solicitud recupera todas las conversaciones de comentarios asociadas al canal de YouTube GoogleDevelopers:

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.commentThreads.list?
part=snippet,replies
&allThreadsRelatedToChannelId=UC_x5XG1OV2P6uZZ5FSM9Ttw

Agregando un comentario

Llama al método commentThreads.insert para agregar un comentario nuevo de nivel superior a un canal o un video. Establece el valor del parámetro part de la solicitud en snippet. El cuerpo de la solicitud es un commentThread resource en el que la propiedad snippet.topLevelComment[].snippet[].textOriginal contiene el texto del comentario. Esta solicitud debe autorizarse con OAuth 2.0.

  • Para agregar un comentario a un canal, usa la propiedad snippet.channelId para identificar el canal.
  • Para agregar un comentario a un video, usa la propiedad snippet.channelId para identificar el canal que subió el video. También usa la propiedad snippet.videoId para identificar el video.

En la siguiente solicitud de muestra, se agrega un comentario a un video.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.commentThreads.insert?
part=snippet

La solicitud inserta el recurso que se muestra a continuación.

{
 "snippet": {
  "channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
  "topLevelComment": {
   "snippet": {
    "textOriginal": "This video is awesome!"
   }
  },
  "videoId": "MILSirUni5E"
 }
}

Responder a un comentario

Llama al método comments.insert para responder a un comentario. Establece el valor del parámetro part de la solicitud en snippet. El cuerpo de la solicitud es un comment resource en el que la propiedad snippet.textOriginal contiene el texto del comentario. La propiedad snippet.parentId identifica el comentario asociado con la respuesta, y su valor es un commentThread resource's ID. Esta solicitud debe autorizarse con OAuth 2.0.

En la siguiente solicitud de muestra, se agrega una respuesta a un comentario existente.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.comments.insert?
part=snippet

La solicitud inserta el recurso que se muestra a continuación. Para ejecutar la solicitud en el Explorador de APIs, usa el valor de la propiedad snippet.parentId para identificar el comentario de nivel superior asociado con la respuesta. En un recurso commentThread, la propiedad snippet.topLevelComment[].id especifica el ID único del recurso.

{
  "snippet": {
    "parentId": "COMMENT_THREAD_ID",
    "textOriginal": "That is true."
  }
}

Actualiza un comentario de nivel superior o una respuesta a un comentario

Para actualizar el texto de un comentario de nivel superior o una respuesta a un comentario de nivel superior, llama al método comments.update. Establece el valor del parámetro part en snippet. En el cuerpo de la solicitud, la propiedad id identifica el comentario que estás modificando y el texto del comentario nuevo.

  • En un recurso commentThread, que identifica un comentario de nivel superior, la propiedad snippet.topLevelComment[].id especifica el ID único del comentario.
  • En un recurso comment, que puede identificar un comentario de nivel superior o una respuesta a un comentario, la propiedad id especifica el ID único del comentario.

En la siguiente solicitud de muestra, se actualiza el texto de un comentario existente.

https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.comments.update?
part=snippet

El cuerpo de la solicitud contiene el fragmento de código JSON que se muestra a continuación. Para ejecutar la solicitud en el Explorador de APIs, establece el valor de la propiedad id para identificar el comentario que estás actualizando. El autor del comentario debe autorizar la solicitud.

{
  "id": "COMMENT_ID",
  "snippet": {
    "textOriginal": "That is true."
  }
}

Establece el estado de moderación de un comentario

Para establecer el estado de moderación de un comentario, llama al método comments.setModerationStatus. Esta acción se usa cuando el propietario de un canal modera los comentarios en el canal o en los videos del canal.

Cuando llames a este método, establece el valor del parámetro id para identificar el comentario. También establece el parámetro moderationStatus en el estado deseado. El estado de un comentario solo puede ajustarlo el propietario del canal en el que aparece el comentario.

  • Paso 1: Recupera los comentarios que están en espera de revisión

    Llama al método commentThreads.list para recuperar comentarios del canal o del video. Establece el valor del parámetro moderationStatus en heldForReview. La respuesta de la API se puede usar para mostrar una lista de comentarios con una opción para que el propietario del canal publique o rechace cada uno.

  • Paso 2: Actualiza el estado de moderación de un comentario

    Llama al método comments.setModerationStatus para actualizar el estado del comentario. Usa el valor del parámetro id para especificar el ID único del comentario. Establece el parámetro moderationStatus en published o rejected. Si rechazas un comentario, también puedes establecer el parámetro banAuthor en true para evitar que el autor haga comentarios adicionales en el canal o el video.

Nota: La API no proporciona una forma de enumerar ni descubrir comentarios rechazados. Sin embargo, puedes cambiar el estado de moderación de un comentario rechazado a published si se conoce el ID único del comentario. Además, una vez que se actualiza el estado de moderación de un comentario a published o rejected, no se puede volver a cambiar a heldForReview.

Quitar un comentario

En este ejemplo, se muestra cómo borrar un comentario. El ejemplo tiene los siguientes pasos:

  • Paso 1: Recupera el ID del comentario

    Sigue los pasos anteriores para recuperar una lista de comentarios de un video o canal. Recuerda que solo el autor puede borrar un comentario, por lo que deberás comparar el valor de la propiedad snippet.authorChannelId.value de un recurso comment con el ID del canal del usuario autenticado para determinar si el usuario puede borrar ese comentario en particular.

  • Paso 2: Borra el comentario o la conversación de comentarios

    Una vez que hayas identificado el ID de la conversación de comentarios o el comentario que estás borrando, llama al método comments.delete para borrar ese comentario. Usa el valor del parámetro id para identificar el ID del comentario o el ID de la conversación de comentarios que estás borrando. Esta solicitud debe autorizarse con OAuth 2.0. Si pruebas esta consulta en el Explorador de APIs, deberás sustituir un ID de comentario o un ID de conversación de comentarios válidos por el valor del parámetro id en la siguiente solicitud.

    https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.comments.delete?
    id=COMMENT_ID