Videos: rate

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

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



HTTP request



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



The following table lists the parameters that this query supports. All of the parameters listed are query 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.


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


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


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

This example uses the Python client library.


import httplib2
import os
import sys

from apiclient.discovery import build
from apiclient.errors import HttpError
from oauth2client.client import flow_from_clientsecrets
from oauth2client.file import Storage
from import argparser, run_flow

# 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
# {{ }}.
# 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:
# For more information about the client_secrets.json file format, see:
CLIENT_SECRETS_FILE = "client_secrets.json"

# This variable defines a message to display if the CLIENT_SECRETS_FILE is
# missing.
WARNING: Please configure OAuth 2.0

To make this sample run you will need to populate the client_secrets.json file
found at:


with information from the {{ Cloud Console }}
{{ }}

For more information about the client_secrets.json file format, please visit:
""" % os.path.abspath(os.path.join(os.path.dirname(__file__),

# This OAuth 2.0 access scope allows for full read/write access to the
# authenticated user's account.

def get_authenticated_service(args):
  flow = flow_from_clientsecrets(CLIENT_SECRETS_FILE,

  storage = Storage("%s-oauth2.json" % sys.argv[0])
  credentials = storage.get()

  if credentials is None or credentials.invalid:
    credentials = run_flow(flow, storage, args)


# 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, video_id):

if __name__ == "__main__":
  argparser.add_argument("--videoid", default="L-oNKK1CrnU",
    help="ID of video to like.")
  args = argparser.parse_args()

  youtube = get_authenticated_service(args)
    like_video(youtube, args.videoid)
  except HttpError, e:
    print "An HTTP error %d occurred:\n%s" % (e.resp.status, e.content)
    print "%s has been liked." % args.videoid


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.