# YouTube Data API . captions

## Instance Methods

Deletes a specified caption track.

Downloads a caption track. The caption track is returned in its original format unless the request specifies a value for the tfmt parameter and in its original language unless the request specifies a value for the tlang parameter.

Downloads a caption track. The caption track is returned in its original format unless the request specifies a value for the tfmt parameter and in its original language unless the request specifies a value for the tlang parameter.

Uploads a caption track.

Returns a list of caption tracks that are associated with a specified video. Note that the API response does not contain the actual captions and that the captions.download method provides the ability to retrieve a caption track.

Updates a caption track. When updating a caption track, you can change the track's draft status, upload a new caption file for the track, or both.

### Method Details

`delete(id, onBehalfOf=None, onBehalfOfContentOwner=None)`

    Deletes a specified caption track.

    Args:
      id: string, The id parameter identifies the caption track that is being deleted. The value is a caption track ID as identified by the id property in a caption resource. (required)
      onBehalfOf: string, ID of the Google+ Page for the channel that the request is be on behalf of
      onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.

    The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The actual CMS account that the user authenticates with must be linked to the specified YouTube content owner.

`download(id, onBehalfOf=None, tlang=None, onBehalfOfContentOwner=None, tfmt=None)`

    Downloads a caption track. The caption track is returned in its original format unless the request specifies a value for the tfmt parameter and in its original language unless the request specifies a value for the tlang parameter.

    Args:
      id: string, The id parameter identifies the caption track that is being retrieved. The value is a caption track ID as identified by the id property in a caption resource. (required)
      onBehalfOf: string, ID of the Google+ Page for the channel that the request is be on behalf of
      tlang: string, The tlang parameter specifies that the API response should return a translation of the specified caption track. The parameter value is an ISO 639-1 two-letter language code that identifies the desired caption language. The translation is generated by using machine translation, such as Google Translate.
      onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.

    The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The actual CMS account that the user authenticates with must be linked to the specified YouTube content owner.
      tfmt: string, The tfmt parameter specifies that the caption track should be returned in a specific format. If the parameter is not included in the request, the track is returned in its original format.
        Allowed values
          sbv - SubViewer subtitle.
          scc - Scenarist Closed Caption format.
          srt - SubRip subtitle.
          ttml - Timed Text Markup Language caption.
          vtt - Web Video Text Tracks caption.

`download_media(id, onBehalfOf=None, tlang=None, onBehalfOfContentOwner=None, tfmt=None)`

    Downloads a caption track. The caption track is returned in its original format unless the request specifies a value for the tfmt parameter and in its original language unless the request specifies a value for the tlang parameter.

    Args:
      id: string, The id parameter identifies the caption track that is being retrieved. The value is a caption track ID as identified by the id property in a caption resource. (required)
      onBehalfOf: string, ID of the Google+ Page for the channel that the request is be on behalf of
      tlang: string, The tlang parameter specifies that the API response should return a translation of the specified caption track. The parameter value is an ISO 639-1 two-letter language code that identifies the desired caption language. The translation is generated by using machine translation, such as Google Translate.
      onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.

    The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The actual CMS account that the user authenticates with must be linked to the specified YouTube content owner.
      tfmt: string, The tfmt parameter specifies that the caption track should be returned in a specific format. If the parameter is not included in the request, the track is returned in its original format.
        Allowed values
          sbv - SubViewer subtitle.
          scc - Scenarist Closed Caption format.
          srt - SubRip subtitle.
          ttml - Timed Text Markup Language caption.
          vtt - Web Video Text Tracks caption.

`insert(part, body=None, media_body=None, onBehalfOf=None, media_mime_type=None, sync=None, onBehalfOfContentOwner=None)`

    Uploads a caption track.

    Args:
      part: string, The part parameter specifies the caption resource parts that the API response will include. Set the parameter value to snippet. (required)
      body: object, The request body.
        The object takes the form of:

    { # A caption resource represents a YouTube caption track. A caption track is associated with exactly one YouTube video.
        "snippet": { # Basic details about a caption track, such as its language and name. # The snippet object contains basic details about the caption.
          "status": "A String", # The caption track's status.
          "audioTrackType": "A String", # The type of audio track associated with the caption track.
          "language": "A String", # The language of the caption track. The property value is a BCP-47 language tag.
          "name": "A String", # The name of the caption track. The name is intended to be visible to the user as an option during playback.
          "videoId": "A String", # The ID that YouTube uses to uniquely identify the video associated with the caption track.
          "isDraft": True or False, # Indicates whether the caption track is a draft. If the value is true, then the track is not publicly visible. The default value is false.
          "isAutoSynced": True or False, # Indicates whether YouTube synchronized the caption track to the audio track in the video. The value will be true if a sync was explicitly requested when the caption track was uploaded. For example, when calling the captions.insert or captions.update methods, you can set the sync parameter to true to instruct YouTube to sync the uploaded track to the video. If the value is false, YouTube uses the time codes in the uploaded caption track to determine when to display captions.
          "trackKind": "A String", # The caption track's type.
          "lastUpdated": "A String", # The date and time when the caption track was last updated. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
          "isCC": True or False, # Indicates whether the track contains closed captions for the deaf and hard of hearing. The default value is false.
          "isEasyReader": True or False, # Indicates whether caption track is formatted for "easy reader," meaning it is at a third-grade level for language learners. The default value is false.
          "isLarge": True or False, # Indicates whether the caption track uses large text for the vision-impaired. The default value is false.
          "failureReason": "A String", # The reason that YouTube failed to process the caption track. This property is only present if the state property's value is failed.
        },
        "kind": "youtube#caption", # Identifies what kind of resource this is. Value: the fixed string "youtube#caption".
        "etag": "A String", # Etag of this resource.
        "id": "A String", # The ID that YouTube uses to uniquely identify the caption track.
      }

      media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
      onBehalfOf: string, ID of the Google+ Page for the channel that the request is be on behalf of
      media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
      sync: boolean, The sync parameter indicates whether YouTube should automatically synchronize the caption file with the audio track of the video. If you set the value to true, YouTube will disregard any time codes that are in the uploaded caption file and generate new time codes for the captions.

    You should set the sync parameter to true if you are uploading a transcript, which has no time codes, or if you suspect the time codes in your file are incorrect and want YouTube to try to fix them.
      onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.

    The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The actual CMS account that the user authenticates with must be linked to the specified YouTube content owner.

    Returns:
      An object of the form:

        { # A caption resource represents a YouTube caption track. A caption track is associated with exactly one YouTube video.
          "snippet": { # Basic details about a caption track, such as its language and name. # The snippet object contains basic details about the caption.
            "status": "A String", # The caption track's status.
            "audioTrackType": "A String", # The type of audio track associated with the caption track.
            "language": "A String", # The language of the caption track. The property value is a BCP-47 language tag.
            "name": "A String", # The name of the caption track. The name is intended to be visible to the user as an option during playback.
            "videoId": "A String", # The ID that YouTube uses to uniquely identify the video associated with the caption track.
            "isDraft": True or False, # Indicates whether the caption track is a draft. If the value is true, then the track is not publicly visible. The default value is false.
            "isAutoSynced": True or False, # Indicates whether YouTube synchronized the caption track to the audio track in the video. The value will be true if a sync was explicitly requested when the caption track was uploaded. For example, when calling the captions.insert or captions.update methods, you can set the sync parameter to true to instruct YouTube to sync the uploaded track to the video. If the value is false, YouTube uses the time codes in the uploaded caption track to determine when to display captions.
            "trackKind": "A String", # The caption track's type.
            "lastUpdated": "A String", # The date and time when the caption track was last updated. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
            "isCC": True or False, # Indicates whether the track contains closed captions for the deaf and hard of hearing. The default value is false.
            "isEasyReader": True or False, # Indicates whether caption track is formatted for "easy reader," meaning it is at a third-grade level for language learners. The default value is false.
            "isLarge": True or False, # Indicates whether the caption track uses large text for the vision-impaired. The default value is false.
            "failureReason": "A String", # The reason that YouTube failed to process the caption track. This property is only present if the state property's value is failed.
          },
          "kind": "youtube#caption", # Identifies what kind of resource this is. Value: the fixed string "youtube#caption".
          "etag": "A String", # Etag of this resource.
          "id": "A String", # The ID that YouTube uses to uniquely identify the caption track.
        }

`list(part, videoId, onBehalfOf=None, onBehalfOfContentOwner=None, id=None)`

    Returns a list of caption tracks that are associated with a specified video. Note that the API response does not contain the actual captions and that the captions.download method provides the ability to retrieve a caption track.

    Args:
      part: string, The part parameter specifies a comma-separated list of one or more caption resource parts that the API response will include. The part names that you can include in the parameter value are id and snippet. (required)
      videoId: string, The videoId parameter specifies the YouTube video ID of the video for which the API should return caption tracks. (required)
      onBehalfOf: string, ID of the Google+ Page for the channel that the request is on behalf of.
      onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.

    The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The actual CMS account that the user authenticates with must be linked to the specified YouTube content owner.
      id: string, The id parameter specifies a comma-separated list of IDs that identify the caption resources that should be retrieved. Each ID must identify a caption track associated with the specified video.

    Returns:
      An object of the form:

        {
        "eventId": "A String", # Serialized EventId of the request which produced this response.
        "items": [ # A list of captions that match the request criteria.
          { # A caption resource represents a YouTube caption track. A caption track is associated with exactly one YouTube video.
              "snippet": { # Basic details about a caption track, such as its language and name. # The snippet object contains basic details about the caption.
                "status": "A String", # The caption track's status.
                "audioTrackType": "A String", # The type of audio track associated with the caption track.
                "language": "A String", # The language of the caption track. The property value is a BCP-47 language tag.
                "name": "A String", # The name of the caption track. The name is intended to be visible to the user as an option during playback.
                "videoId": "A String", # The ID that YouTube uses to uniquely identify the video associated with the caption track.
                "isDraft": True or False, # Indicates whether the caption track is a draft. If the value is true, then the track is not publicly visible. The default value is false.
                "isAutoSynced": True or False, # Indicates whether YouTube synchronized the caption track to the audio track in the video. The value will be true if a sync was explicitly requested when the caption track was uploaded. For example, when calling the captions.insert or captions.update methods, you can set the sync parameter to true to instruct YouTube to sync the uploaded track to the video. If the value is false, YouTube uses the time codes in the uploaded caption track to determine when to display captions.
                "trackKind": "A String", # The caption track's type.
                "lastUpdated": "A String", # The date and time when the caption track was last updated. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
                "isCC": True or False, # Indicates whether the track contains closed captions for the deaf and hard of hearing. The default value is false.
                "isEasyReader": True or False, # Indicates whether caption track is formatted for "easy reader," meaning it is at a third-grade level for language learners. The default value is false.
                "isLarge": True or False, # Indicates whether the caption track uses large text for the vision-impaired. The default value is false.
                "failureReason": "A String", # The reason that YouTube failed to process the caption track. This property is only present if the state property's value is failed.
              },
              "kind": "youtube#caption", # Identifies what kind of resource this is. Value: the fixed string "youtube#caption".
              "etag": "A String", # Etag of this resource.
              "id": "A String", # The ID that YouTube uses to uniquely identify the caption track.
            },
        ],
        "kind": "youtube#captionListResponse", # Identifies what kind of resource this is. Value: the fixed string "youtube#captionListResponse".
        "etag": "A String", # Etag of this resource.
        "visitorId": "A String", # The visitorId identifies the visitor.
      }

`update(part, body=None, media_body=None, onBehalfOf=None, media_mime_type=None, sync=None, onBehalfOfContentOwner=None)`

    Updates a caption track. When updating a caption track, you can change the track's draft status, upload a new caption file for the track, or both.

    Args:
      part: string, The part parameter serves two purposes in this operation. It identifies the properties that the write operation will set as well as the properties that the API response will include. Set the property value to snippet if you are updating the track's draft status. Otherwise, set the property value to id. (required)
      body: object, The request body.
        The object takes the form of:

    { # A caption resource represents a YouTube caption track. A caption track is associated with exactly one YouTube video.
        "snippet": { # Basic details about a caption track, such as its language and name. # The snippet object contains basic details about the caption.
          "status": "A String", # The caption track's status.
          "audioTrackType": "A String", # The type of audio track associated with the caption track.
          "language": "A String", # The language of the caption track. The property value is a BCP-47 language tag.
          "name": "A String", # The name of the caption track. The name is intended to be visible to the user as an option during playback.
          "videoId": "A String", # The ID that YouTube uses to uniquely identify the video associated with the caption track.
          "isDraft": True or False, # Indicates whether the caption track is a draft. If the value is true, then the track is not publicly visible. The default value is false.
          "isAutoSynced": True or False, # Indicates whether YouTube synchronized the caption track to the audio track in the video. The value will be true if a sync was explicitly requested when the caption track was uploaded. For example, when calling the captions.insert or captions.update methods, you can set the sync parameter to true to instruct YouTube to sync the uploaded track to the video. If the value is false, YouTube uses the time codes in the uploaded caption track to determine when to display captions.
          "trackKind": "A String", # The caption track's type.
          "lastUpdated": "A String", # The date and time when the caption track was last updated. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
          "isCC": True or False, # Indicates whether the track contains closed captions for the deaf and hard of hearing. The default value is false.
          "isEasyReader": True or False, # Indicates whether caption track is formatted for "easy reader," meaning it is at a third-grade level for language learners. The default value is false.
          "isLarge": True or False, # Indicates whether the caption track uses large text for the vision-impaired. The default value is false.
          "failureReason": "A String", # The reason that YouTube failed to process the caption track. This property is only present if the state property's value is failed.
        },
        "kind": "youtube#caption", # Identifies what kind of resource this is. Value: the fixed string "youtube#caption".
        "etag": "A String", # Etag of this resource.
        "id": "A String", # The ID that YouTube uses to uniquely identify the caption track.
      }

      media_body: string, The filename of the media request body, or an instance of a MediaUpload object.
      onBehalfOf: string, ID of the Google+ Page for the channel that the request is be on behalf of
      media_mime_type: string, The MIME type of the media request body, or an instance of a MediaUpload object.
      sync: boolean, Note: The API server only processes the parameter value if the request contains an updated caption file.

    The sync parameter indicates whether YouTube should automatically synchronize the caption file with the audio track of the video. If you set the value to true, YouTube will automatically synchronize the caption track with the audio track.
      onBehalfOfContentOwner: string, Note: This parameter is intended exclusively for YouTube content partners.

    The onBehalfOfContentOwner parameter indicates that the request's authorization credentials identify a YouTube CMS user who is acting on behalf of the content owner specified in the parameter value. This parameter is intended for YouTube content partners that own and manage many different YouTube channels. It allows content owners to authenticate once and get access to all their video and channel data, without having to provide authentication credentials for each individual channel. The actual CMS account that the user authenticates with must be linked to the specified YouTube content owner.

    Returns:
      An object of the form:

        { # A caption resource represents a YouTube caption track. A caption track is associated with exactly one YouTube video.
          "snippet": { # Basic details about a caption track, such as its language and name. # The snippet object contains basic details about the caption.
            "status": "A String", # The caption track's status.
            "audioTrackType": "A String", # The type of audio track associated with the caption track.
            "language": "A String", # The language of the caption track. The property value is a BCP-47 language tag.
            "name": "A String", # The name of the caption track. The name is intended to be visible to the user as an option during playback.
            "videoId": "A String", # The ID that YouTube uses to uniquely identify the video associated with the caption track.
            "isDraft": True or False, # Indicates whether the caption track is a draft. If the value is true, then the track is not publicly visible. The default value is false.
            "isAutoSynced": True or False, # Indicates whether YouTube synchronized the caption track to the audio track in the video. The value will be true if a sync was explicitly requested when the caption track was uploaded. For example, when calling the captions.insert or captions.update methods, you can set the sync parameter to true to instruct YouTube to sync the uploaded track to the video. If the value is false, YouTube uses the time codes in the uploaded caption track to determine when to display captions.
            "trackKind": "A String", # The caption track's type.
            "lastUpdated": "A String", # The date and time when the caption track was last updated. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.
            "isCC": True or False, # Indicates whether the track contains closed captions for the deaf and hard of hearing. The default value is false.
            "isEasyReader": True or False, # Indicates whether caption track is formatted for "easy reader," meaning it is at a third-grade level for language learners. The default value is false.
            "isLarge": True or False, # Indicates whether the caption track uses large text for the vision-impaired. The default value is false.
            "failureReason": "A String", # The reason that YouTube failed to process the caption track. This property is only present if the state property's value is failed.
          },
          "kind": "youtube#caption", # Identifies what kind of resource this is. Value: the fixed string "youtube#caption".
          "etag": "A String", # Etag of this resource.
          "id": "A String", # The ID that YouTube uses to uniquely identify the caption track.
        }