Videos: rate

Add a like or dislike rating to a video or remove a rating from a video. Try it now.

Quota impact: A call to this method has a quota cost of approximately 50 units.

Usage

Request

HTTP request

POST https://www.googleapis.com/youtube/v3/videos/rate

Authorization

This request requires authorization with at least one of the following scopes (read more about authentication and authorization).

Scope
https://www.googleapis.com/auth/youtubepartner
https://www.googleapis.com/auth/youtube
https://www.googleapis.com/auth/youtube.force-ssl

Parameters

The following table lists the parameters that this query supports. All of the parameters listed are query parameters.

Parameters
Required parameters
id string
The id parameter specifies the YouTube video ID of the video that is being rated or having its rating removed.
rating string
Specifies the rating to record.

Acceptable values are:
  • dislike – Records that the authenticated user disliked the video.
  • like – Records that the authenticated user liked the video.
  • none – Removes any rating that the authenticated user had previously set for the video.

Request body

Do not provide a request body when calling this method.

Response

If successful, this method returns an HTTP 204 response code (No Content).

Examples

Note: The following code samples may not represent all supported programming languages. See the client libraries documentation for a list of supported languages.

Python

This sample calls the API's videos.rate method to set a positive rating for a video.

This example uses the Python client library.

#!/usr/bin/python

# This sample shows how to rate a video.
# Sample usage:
#   python like_video.py --videoId=OE63BYWdqC4 --rating=like

import argparse
import os
import re

import google.oauth2.credentials
import google_auth_oauthlib.flow
from googleapiclient.discovery import build
from googleapiclient.errors import HttpError
from google_auth_oauthlib.flow import InstalledAppFlow


# The CLIENT_SECRETS_FILE variable specifies the name of a file that contains
# the OAuth 2.0 information for this application, including its client_id and
# client_secret. You can acquire an OAuth 2.0 client ID and client secret from
# the {{ Google Cloud Console }} at
# {{ https://cloud.google.com/console }}.
# Please ensure that you have enabled the YouTube Data API for your project.
# For more information about using OAuth2 to access the YouTube Data API, see:
#   https://developers.google.com/youtube/v3/guides/authentication
# For more information about the client_secrets.json file format, see:
#   https://developers.google.com/api-client-library/python/guide/aaa_client_secrets
CLIENT_SECRETS_FILE = 'client_secret.json'

# This OAuth 2.0 access scope allows for full read/write access to the
# authenticated user's account.
SCOPES = ['https://www.googleapis.com/auth/youtube.force-ssl']
API_SERVICE_NAME = 'youtube'
API_VERSION = 'v3'

RATINGS = ('like', 'dislike', 'none')

# Authorize the request and store authorization credentials.
def get_authenticated_service():
  flow = InstalledAppFlow.from_client_secrets_file(CLIENT_SECRETS_FILE, SCOPES)
  credentials = flow.run_console()
  return build(API_SERVICE_NAME, API_VERSION, credentials = credentials)

# Add the video rating. This code sets the rating to 'like,' but you could
# also support an additional option that supports values of 'like' and
# 'dislike.'
def like_video(youtube, args):
  youtube.videos().rate(
    id=args.videoId,
    rating=args.rating
  ).execute()

if __name__ == '__main__':
  parser = argparse.ArgumentParser()
  parser.add_argument('--videoId', default='OE63BYWdqC4',
    help='ID of video to like.')
  parser.add_argument('--rating', default='like',
    choices=RATINGS,
    help='Indicates whether the rating is "like", "dislike", or "none".')
  args = parser.parse_args()

  youtube = get_authenticated_service()
  try:
    like_video(youtube, args)
  except HttpError, e:
    print 'An HTTP error %d occurred:\n%s' % (e.resp.status, e.content)
  else:
    print ('The %s rating has been added for video ID %s.' %
           (args.rating, args.videoId))

Errors

The following table identifies error messages that the API could return in response to a call to this method. Please see the error message documentation for more detail.

Error type Error detail Description
badRequest (400) emailNotVerified The user must verify their e-mail address prior to rating.
badRequest (400) invalidRating The request contained an unexpected value for the rating parameter.
badRequest (400) videoPurchaseRequired Rental videos can only be rated by users who rented them.
forbidden (403) forbidden The video that you are trying to rate cannot be rated. The request might not be properly authorized.
forbidden (403) videoRatingDisabled The owner of the video that you are trying to rate has disabled ratings for that video.
notFound (404) videoNotFound The video that you are trying to rate cannot be found. Check the value of the request's id parameter to ensure that it is correct.

Send feedback about...

YouTube Data API
YouTube Data API