Python Forum
Thread Rating:
  • 1 Vote(s) - 1 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Youtube Comment bot
#1
Hi I found bot used to find new video and automaticaly post comment there https://github.com/BOT-HAT/Youtube-First-Comment-Bot
but the problem is that code is a little messed up and it doesnt work.
Can you please help me fix this issues because I'm not a programmed and I tried to do this without succes. Thanks in advance <3

there 2 codes in zipped file

"bot" :

import httplib2
import os
import sys
import time

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

# ======== Configure the following variables ===========
#uploads id
cid="UCSGC6p8NYQPhk-Z7qfmmdBQ"
#last video id wMuYiLby3-s
lastvid="vnZiRewVEFE"
# waiting time intervel in seconds
intervel=60
#comment you need to post
comment="Komentarz"

CLIENT_SECRETS_FILE = "./client_secrets.json"
YOUTUBE_READ_WRITE_SSL_SCOPE = "https://www.googleapis.com/auth/youtube.force-ssl"
YOUTUBE_API_SERVICE_NAME = "youtube"
YOUTUBE_API_VERSION = "v3"
MISSING_CLIENT_SECRETS_MESSAGE = """
WARNING: Please configure OAuth 2.0
To make this sample run you will need to populate the client_secrets.json file
found at:
%s
with information from the APIs Console
https://console.developers.google.com
For more information about the client_secrets.json file format, please visit:
https://developers.google.com/api-client...nt_secrets
""" % os.path.abspath(os.path.join(os.path.dirname(__file__),
CLIENT_SECRETS_FILE))
def get_authenticated_service(args):
flow = flow_from_clientsecrets(CLIENT_SECRETS_FILE, scope=YOUTUBE_READ_WRITE_SSL_SCOPE,
message=MISSING_CLIENT_SECRETS_MESSAGE)

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

if credentials is None or credentials.invalid:
credentials = run_flow(flow, storage, args)
with open("youtube-v3-discoverydocument.json", "r") as f:
doc = f.read()
return build_from_document(doc, http=credentials.authorize(httplib2.Http()))
def insert_comment(youtube, parent_id, text):
insert_result = youtube.commentThreads().insert(
part="snippet",
body={
"snippet": {
"videoId": parent_id,
"topLevelComment": {
"snippet": {
"textOriginal": text
}
}
}
}
)
response = insert_result.execute()
print ("comment added")
def lastvideo(youtube, cid):
request = youtube.playlistItems().list(
part="snippet",
playlistId=cid
)
response = request.execute()
return(response["items"][0]["snippet"]["resourceId"]["videoId"])
argparser.add_argument("--text", help="Required; text that will be used as comment.")
args = argparser.parse_args()
args.videoid=lastvid
args.text=comment
youtube = get_authenticated_service(args)
i=0
while True:
last=lastvideo(youtube,cid)
i=i+1
if(last!=lastvid):
print(last)
try:
insert_comment(youtube, last, args.text)
except HttpError, e:
print "An HTTP error %d occurred:\n%s" % (e.resp.status, e.content)
else:
print "Comment Inserted"
break
time.sleep(intervel)
print("waiting......")
print "Cycle:", i


"youtube-v3-discoverydocument"


{
"kind": "discovery#restDescription",
"etag": "\"LYADMvHWYH2ul9D6m9UT9gT77YM/Nm__f--W35YsbGiyE7RBX2pFdbY\"",
"discoveryVersion": "v1",
"id": "youtube:v3",
"name": "youtube",
"canonicalName": "YouTube",
"version": "v3",
"revision": "20191025",
"title": "YouTube Data API",
"description": "Supports core YouTube features, such as uploading videos, creating and managing playlists, searching for content, and much more.",
"ownerDomain": "google.com",
"ownerName": "Google",
"icons": {
"x16": "https://www.google.com/images/icons/product/youtube-16.png",
"x32": "https://www.google.com/images/icons/product/youtube-32.png"
},
"documentationLink": "https://developers.google.com/youtube/v3",
"protocol": "rest",
"baseUrl": "https://www.googleapis.com/youtube/v3/",
"basePath": "/youtube/v3/",
"rootUrl": "https://www.googleapis.com/",
"servicePath": "youtube/v3/",
"batchPath": "batch/youtube/v3",
"parameters": {
"alt": {
"type": "string",
"description": "Data format for the response.",
"default": "json",
"enum": [
"json"
],
"enumDescriptions": [
"Responses with Content-Type of application/json"
],
"location": "query"
},
"fields": {
"type": "string",
"description": "Selector specifying which fields to include in a partial response.",
"location": "query"
},
"key": {
"type": "string",
"description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
"location": "query"
},
"oauth_token": {
"type": "string",
"description": "OAuth 2.0 token for the current user.",
"location": "query"
},
"prettyPrint": {
"type": "boolean",
"description": "Returns response with indentations and line breaks.",
"default": "true",
"location": "query"
},
"quotaUser": {
"type": "string",
"description": "An opaque string that represents a user for quota purposes. Must not exceed 40 characters.",
"location": "query"
},
"userIp": {
"type": "string",
"description": "Deprecated. Please use quotaUser instead.",
"location": "query"
}
},
"auth": {
"oauth2": {
"scopes": {
"https://www.googleapis.com/auth/youtube": {
"description": "Manage your YouTube account"
},
"https://www.googleapis.com/auth/youtube.force-ssl": {
"description": "See, edit, and permanently delete your YouTube videos, ratings, comments and captions"
},
"https://www.googleapis.com/auth/youtube.readonly": {
"description": "View your YouTube account"
},
"https://www.googleapis.com/auth/youtube.upload": {
"description": "Manage your YouTube videos"
},
"https://www.googleapis.com/auth/youtubepartner": {
"description": "View and manage your assets and associated content on YouTube"
},
"https://www.googleapis.com/auth/youtubepartner-channel-audit": {
"description": "View private information of your YouTube channel relevant during the audit process with a YouTube partner"
}
}
}
},
"schemas": {
"AccessPolicy": {
"id": "AccessPolicy",
"type": "object",
"description": "Rights management policy for YouTube resources.",
"properties": {
"allowed": {
"type": "boolean",
"description": "The value of allowed indicates whether the access to the policy is allowed or denied by default."
},
"exception": {
"type": "array",
"description": "A list of region codes that identify countries where the default policy do not apply.",
"items": {
"type": "string"
}
}
}
},
"Activity": {
"id": "Activity",
"type": "object",
"description": "An activity resource contains information about an action that a particular channel, or user, has taken on YouTube.The actions reported in activity feeds include rating a video, sharing a video, marking a video as a favorite, commenting on a video, uploading a video, and so forth. Each activity resource identifies the type of action, the channel associated with the action, and the resource(s) associated with the action, such as the video that was rated or uploaded.",
"properties": {
"contentDetails": {
"$ref": "ActivityContentDetails",
"description": "The contentDetails object contains information about the content associated with the activity. For example, if the snippet.type value is videoRated, then the contentDetails object's content identifies the rated video."
},
"etag": {
"type": "string",
"description": "Etag of this resource."
},
"id": {
"type": "string",
"description": "The ID that YouTube uses to uniquely identify the activity."
},
"kind": {
"type": "string",
"description": "Identifies what kind of resource this is. Value: the fixed string \"youtube#activity\".",
"default": "youtube#activity"
},
"snippet": {
"$ref": "ActivitySnippet",
"description": "The snippet object contains basic details about the activity, including the activity's type and group ID."
}
}
},
"ActivityContentDetails": {
"id": "ActivityContentDetails",
"type": "object",
"description": "Details about the content of an activity: the video that was shared, the channel that was subscribed to, etc.",
"properties": {
"bulletin": {
"$ref": "ActivityContentDetailsBulletin",
"description": "The bulletin object contains details about a channel bulletin post. This object is only present if the snippet.type is bulletin."
},
"channelItem": {
"$ref": "ActivityContentDetailsChannelItem",
"description": "The channelItem object contains details about a resource which was added to a channel. This property is only present if the snippet.type is channelItem."
},
"comment": {
"$ref": "ActivityContentDetailsComment",
"description": "The comment object contains information about a resource that received a comment. This property is only present if the snippet.type is comment."
},
"favorite": {
"$ref": "ActivityContentDetailsFavorite",
"description": "The favorite object contains information about a video that was marked as a favorite video. This property is only present if the snippet.type is favorite."
},
"like": {
"$ref": "ActivityContentDetailsLike",
"description": "The like object contains information about a resource that received a positive (like) rating. This property is only present if the snippet.type is like."
},
"playlistItem": {
"$ref": "ActivityContentDetailsPlaylistItem",
"description": "The playlistItem object contains information about a new playlist item. This property is only present if the snippet.type is playlistItem."
},
"promotedItem": {
"$ref": "ActivityContentDetailsPromotedItem",
"description": "The promotedItem object contains details about a resource which is being promoted. This property is only present if the snippet.type is promotedItem."
},
"recommendation": {
"$ref": "ActivityContentDetailsRecommendation",
"description": "The recommendation object contains information about a recommended resource. This property is only present if the snippet.type is recommendation."
},
"social": {
"$ref": "ActivityContentDetailsSocial",
"description": "The social object contains details about a social network post. This property is only present if the snippet.type is social."
},
"subscription": {
"$ref": "ActivityContentDetailsSubscription",
"description": "The subscription object contains information about a channel that a user subscribed to. This property is only present if the snippet.type is subscription."
},
"upload": {
"$ref": "ActivityContentDetailsUpload",
"description": "The upload object contains information about the uploaded video. This property is only present if the snippet.type is upload."
}
}
},
"ActivityContentDetailsBulletin": {
"id": "ActivityContentDetailsBulletin",
"type": "object",
"description": "Details about a channel bulletin post.",
"properties": {
"resourceId": {
"$ref": "ResourceId",
"description": "The resourceId object contains information that identifies the resource associated with a bulletin post."
}
}
},
"ActivityContentDetailsChannelItem": {
"id": "ActivityContentDetailsChannelItem",
"type": "object",
"description": "Details about a resource which was added to a channel.",
"properties": {
"resourceId": {
"$ref": "ResourceId",
"description": "The resourceId object contains information that identifies the resource that was added to the channel."
}
}
},
"ActivityContentDetailsComment": {
"id": "ActivityContentDetailsComment",
"type": "object",
"description": "Information about a resource that received a comment.",
"properties": {
"resourceId": {
"$ref": "ResourceId",
"description": "The resourceId object contains information that identifies the resource associated with the comment."
}
}
},
"ActivityContentDetailsFavorite": {
"id": "ActivityContentDetailsFavorite",
"type": "object",
"description": "Information about a video that was marked as a favorite video.",
"properties": {
"resourceId": {
"$ref": "ResourceId",
"description": "The resourceId object contains information that identifies the resource that was marked as a favorite."
}
}
},
"ActivityContentDetailsLike": {
"id": "ActivityContentDetailsLike",
"type": "object",
"description": "Information about a resource that received a positive (like) rating.",
"properties": {
"resourceId": {
"$ref": "ResourceId",
"description": "The resourceId object contains information that identifies the rated resource."
}
}
},
"ActivityContentDetailsPlaylistItem": {
"id": "ActivityContentDetailsPlaylistItem",
"type": "object",
"description": "Information about a new playlist item.",
"properties": {
"playlistId": {
"type": "string",
"description": "The value that YouTube uses to uniquely identify the playlist."
},
"playlistItemId": {
"type": "string",
"description": "ID of the item within the playlist."
},
"resourceId": {
"$ref": "ResourceId",
"description": "The resourceId object contains information about the resource that was added to the playlist."
}
}
},
"ActivityContentDetailsPromotedItem": {
"id": "ActivityContentDetailsPromotedItem",
"type": "object",
"description": "Details about a resource which is being promoted.",
"properties": {
"adTag": {
"type": "string",
"description": "The URL the client should fetch to request a promoted item."
},
"clickTrackingUrl": {
"type": "string",
"description": "The URL the client should ping to indicate that the user clicked through on this promoted item."
},
"creativeViewUrl": {
"type": "string",
"description": "The URL the client should ping to indicate that the user was shown this promoted item."
},
"ctaType": {
"type": "string",
"description": "The type of call-to-action, a message to the user indicating action that can be taken.",
"enum": [
"unspecified",
"visitAdvertiserSite"
],
"enumDescriptions": [
"",
""
]
},
"customCtaButtonText": {
"type": "string",
"description": "The custom call-to-action button text. If specified, it will override the default button text for the cta_type."
},
"descriptionText": {
"type": "string",
"description": "The text description to accompany the promoted item."
},
"destinationUrl": {
"type": "string",
"description": "The URL the client should direct the user to, if the user chooses to visit the advertiser's website."
},
"forecastingUrl": {
"type": "array",
"description": "The list of forecasting URLs. The client should ping all of these URLs when a promoted item is not available, to indicate that a promoted item could have been shown.",
"items": {
"type": "string"
}
},
"impressionUrl": {
"type": "array",
"description": "The list of impression URLs. The client should ping all of these URLs to indicate that the user was shown this promoted item.",
"items": {
"type": "string"
}
},
"videoId": {
"type": "string",
"description": "The ID that YouTube uses to uniquely identify the promoted video."
}
}
},
"ActivityContentDetailsRecommendation": {
"id": "ActivityContentDetailsRecommendation",
"type": "object",
"description": "Information that identifies the recommended resource.",
"properties": {
"reason": {
"type": "string",
"description": "The reason that the resource is recommended to the user.",
"enum": [
"unspecified",
"videoFavorited",
"videoLiked",
"videoWatched"
],
"enumDescriptions": [
"",
"",
"",
""
]
},
"resourceId": {
"$ref": "ResourceId",
"description": "The resourceId object contains information that identifies the recommended resource."
},
"seedResourceId": {
"$ref": "ResourceId",
"description": "The seedResourceId object contains information about the resource that caused the recommendation."
}
}
},
"ActivityContentDetailsSocial": {
"id": "ActivityContentDetailsSocial",
"type": "object",
"description": "Details about a social network post.",
"properties": {
"author": {
"type": "string",
"description": "The author of the social network post."
},
"imageUrl": {
"type": "string",
"description": "An image of the post's author."
},
"referenceUrl": {
"type": "string",
"description": "The URL of the social network post."
},
"resourceId": {
"$ref": "ResourceId",
"description": "The resourceId object encapsulates information that identifies the resource associated with a social network post."
},
"type": {
"type": "string",
"description": "The name of the social network.",
"enum": [
"facebook",
"googlePlus",
"twitter",
"unspecified"
],
"enumDescriptions": [
"",
"",
"",
""
]
}
}
},
"ActivityContentDetailsSubscription": {
"id": "ActivityContentDetailsSubscription",
"type": "object",
"description": "Information about a channel that a user subscribed to.",
"properties": {
"resourceId": {
"$ref": "ResourceId",
"description": "The resourceId object contains information that identifies the resource that the user subscribed to."
}
}
},
"ActivityContentDetailsUpload": {
"id": "ActivityContentDetailsUpload",
"type": "object",
"description": "Information about the uploaded video.",
"properties": {
"videoId": {
"type": "string",
"description": "The ID that YouTube uses to uniquely identify the uploaded video."
}
}
},
"ActivityListResponse": {
"id": "ActivityListResponse",
"type": "object",
"properties": {
"etag": {
"type": "string",
"description": "Etag of this resource."
},
"eventId": {
"type": "string",
"description": "Serialized EventId of the request which produced this response."
},
"items": {
"type": "array",
"description": "A list of activities, or events, that match the request criteria.",
"items": {
"$ref": "Activity"
}
},
"kind": {
"type": "string",
"description": "Identifies what kind of resource this is. Value: the fixed string \"youtube#activityListResponse\".",
"default": "youtube#activityListResponse"
},
"nextPageToken": {
"type": "string",
"description": "The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set."
},
"pageInfo": {
"$ref": "PageInfo"
},
"prevPageToken": {
"type": "string",
"description": "The token that can be used as the value of the pageToken parameter to retrieve the previous page in the result set."
},
"tokenPagination": {
"$ref": "TokenPagination"
},
"visitorId": {
"type": "string",
"description": "The visitorId identifies the visitor."
}
}
},
"ActivitySnippet": {
"id": "ActivitySnippet",
"type": "object",
"description": "Basic details about an activity, including title, description, thumbnails, activity type and group.",
"properties": {
"channelId": {
"type": "string",
"description": "The ID that YouTube uses to uniquely identify the channel associated with the activity."
},
"channelTitle": {
"type": "string",
"description": "Channel title for the channel responsible for this activity"
},
"description": {
"type": "string",
"description": "The description of the resource primarily associated with the activity.",
"annotations": {
"required": [
"youtube.activities.insert"
]
}
},
"groupId": {
"type": "string",
"description": "The group ID associated with the activity. A group ID identifies user events that are associated with the same user and resource. For example, if a user rates a video and marks the same video as a favorite, the entries for those events would have the same group ID in the user's activity feed. In your user interface, you can avoid repetition by grouping events with the same groupId value."
},
"publishedAt": {
"type": "string",
"description": "The date and time that the video was uploaded. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.",
"format": "date-time"
},
"thumbnails": {
"$ref": "ThumbnailDetails",
"description": "A map of thumbnail images associated with the resource that is primarily associated with the activity. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail."
},
"title": {
"type": "string",
"description": "The title of the resource primarily associated with the activity."
},
"type": {
"type": "string",
"description": "The type of activity that the resource describes.",
"enum": [
"bulletin",
"channelItem",
"comment",
"favorite",
"like",
"playlistItem",
"promotedItem",
"recommendation",
"social",
"subscription",
"upload"
],
"enumDescriptions": [
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
}
},
"Caption": {
"id": "Caption",
"type": "object",
"description": "A caption resource represents a YouTube caption track. A caption track is associated with exactly one YouTube video.",
"properties": {
"etag": {
"type": "string",
"description": "Etag of this resource."
},
"id": {
"type": "string",
"description": "The ID that YouTube uses to uniquely identify the caption track.",
"annotations": {
"required": [
"youtube.captions.update"
]
}
},
"kind": {
"type": "string",
"description": "Identifies what kind of resource this is. Value: the fixed string \"youtube#caption\".",
"default": "youtube#caption"
},
"snippet": {
"$ref": "CaptionSnippet",
"description": "The snippet object contains basic details about the caption."
}
}
},
"CaptionListResponse": {
"id": "CaptionListResponse",
"type": "object",
"properties": {
"etag": {
"type": "string",
"description": "Etag of this resource."
},
"eventId": {
"type": "string",
"description": "Serialized EventId of the request which produced this response."
},
"items": {
"type": "array",
"description": "A list of captions that match the request criteria.",
"items": {
"$ref": "Caption"
}
},
"kind": {
"type": "string",
"description": "Identifies what kind of resource this is. Value: the fixed string \"youtube#captionListResponse\".",
"default": "youtube#captionListResponse"
},
"visitorId": {
"type": "string",
"description": "The visitorId identifies the visitor."
}
}
},
"CaptionSnippet": {
"id": "CaptionSnippet",
"type": "object",
"description": "Basic details about a caption track, such as its language and name.",
"properties": {
"audioTrackType": {
"type": "string",
"description": "The type of audio track associated with the caption track.",
"enum": [
"commentary",
"descriptive",
"primary",
"unknown"
],
"enumDescriptions": [
"",
"",
"",
""
]
},
"failureReason": {
"type": "string",
"description": "The reason that YouTube failed to process the caption track. This property is only present if the state property's value is failed.",
"enum": [
"processingFailed",
"unknownFormat",
"unsupportedFormat"
],
"enumDescriptions": [
"",
"",
""
]
},
"isAutoSynced": {
"type": "boolean",
"description": "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."
},
"isCC": {
"type": "boolean",
"description": "Indicates whether the track contains closed captions for the deaf and hard of hearing. The default value is false."
},
"isDraft": {
"type": "boolean",
"description": "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."
},
"isEasyReader": {
"type": "boolean",
"description": "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": {
"type": "boolean",
"description": "Indicates whether the caption track uses large text for the vision-impaired. The default value is false."
},
"language": {
"type": "string",
"description": "The language of the caption track. The property value is a BCP-47 language tag.",
"annotations": {
"required": [
"youtube.captions.insert"
]
}
},
"lastUpdated": {
"type": "string",
"description": "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.",
"format": "date-time"
},
"name": {
"type": "string",
"description": "The name of the caption track. The name is intended to be visible to the user as an option during playback.",
"annotations": {
"required": [
"youtube.captions.insert"
]
}
},
"status": {
"type": "string",
"description": "The caption track's status.",
"enum": [
"failed",
"serving",
"syncing"
],
"enumDescriptions": [
"",
"",
""
]
},
"trackKind": {
"type": "string",
"description": "The caption track's type.",
"enum": [
"ASR",
"forced",
"standard"
],
"enumDescriptions": [
"",
"",
""
]
},
"videoId": {
"type": "string",
"description": "The ID that YouTube uses to uniquely identify the video associated with the caption track.",
"annotations": {
"required": [
"youtube.captions.insert"
]
}
}
}
},
"CdnSettings": {
"id": "CdnSettings",
"type": "object",
"description": "Brief description of the live stream cdn settings.",
"properties": {
"format": {
"type": "string",
"description": "The format of the video stream that you are sending to Youtube.",
"annotations": {
"required": [
"youtube.liveStreams.insert",
"youtube.liveStreams.update"
]
}
},
"frameRate": {
"type": "string",
"description": "The frame rate of the inbound video data.",
"enum": [
"30fps",
"60fps",
"variable"
],
"enumDescriptions": [
"",
"",
""
]
},
"ingestionInfo": {
"$ref": "IngestionInfo",
"description": "The ingestionInfo object contains information that YouTube provides that you need to transmit your RTMP or HTTP stream to YouTube."
},
"ingestionType": {
"type": "string",
"description": "The method or protocol used to transmit the video stream.",
"enum": [
"dash",
"hls",
"rtmp",
"webrtc"
],
"enumDescriptions": [
"",
"",
"",
""
],
"annotations": {
"required": [
"youtube.liveStreams.insert",
"youtube.liveStreams.update"
]
}
},
"resolution": {
"type": "string",
"description": "The resolution of the inbound video data.",
"enum": [
"1080p",
"1440p",
"2160p",
"240p",
"360p",
"480p",
"720p",
"variable"
],
"enumDescriptions": [
"",
"",
"",
"",
"",
"",
"",
""
]
}
}
},
"Channel": {
"id": "Channel",
"type": "object",
"description": "A channel resource contains information about a YouTube channel.",
"properties": {
"auditDetails": {
"$ref": "ChannelAuditDetails",
"description": "The auditionDetails object encapsulates channel data that is relevant for YouTube Partners during the audition process."
},
"brandingSettings": {
"$ref": "ChannelBrandingSettings",
"description": "The brandingSettings object encapsulates information about the branding of the channel."
},
"contentDetails": {
"$ref": "ChannelContentDetails",
"description": "The contentDetails object encapsulates information about the channel's content."
},
"contentOwnerDetails": {
"$ref": "ChannelContentOwnerDetails",
"description": "The contentOwnerDetails object encapsulates channel data that is relevant for YouTube Partners linked with the channel."
},
"conversionPings": {
"$ref": "ChannelConversionPings",
"description": "The conversionPings object encapsulates information about conversion pings that need to be respected by the channel."
},
"etag": {
"type": "string",
"description": "Etag of this resource."
},
"id": {
"type": "string",
"description": "The ID that YouTube uses to uniquely identify the channel."
},
"invideoPromotion": {
"$ref": "InvideoPromotion",
"description": "The invideoPromotion object encapsulates information about promotion campaign associated with the channel."
},
"kind": {
"type": "string",
"description": "Identifies what kind of resource this is. Value: the fixed string \"youtube#channel\".",
"default": "youtube#channel"
},
"localizations": {
"type": "object",
"description": "Localizations for different languages",
"additionalProperties": {
"$ref": "ChannelLocalization",
"description": "The language tag, using string since map_key require simple types."
}
},
"snippet": {
"$ref": "ChannelSnippet",
"description": "The snippet object contains basic details about the channel, such as its title, description, and thumbnail images."
},
"statistics": {
"$ref": "ChannelStatistics",
"description": "The statistics object encapsulates statistics for the channel."
},
"status": {
"$ref": "ChannelStatus",
"description": "The status object encapsulates information about the privacy status of the channel."
},
"topicDetails": {
"$ref": "ChannelTopicDetails",
"description": "The topicDetails object encapsulates information about Freebase topics associated with the channel."
}
}
},
"ChannelAuditDetails": {
"id": "ChannelAuditDetails",
"type": "object",
"description": "The auditDetails object encapsulates channel data that is relevant for YouTube Partners during the audit process.",
"properties": {
"communityGuidelinesGoodStanding": {
"type": "boolean",
"description": "Whether or not the channel respects the community guidelines."
},
"contentIdClaimsGoodStanding": {
"type": "boolean",
"description": "Whether or not the channel has any unresolved claims."
},
"copyrightStrikesGoodStanding": {
"type": "boolean",
"description": "Whether or not the channel has any copyright strikes."
}
}
},
"ChannelBannerResource": {
"id": "ChannelBannerResource",
"type": "object",
"description": "A channel banner returned as the response to a channel_banner.insert call.",
"properties": {
"etag": {
"type": "string",
"description": "Etag of this resource."
},
"kind": {
"type": "string",
"description": "Identifies what kind of resource this is. Value: the fixed string \"youtube#channelBannerResource\".",
"default": "youtube#channelBannerResource"
},
"url": {
"type": "string",
"description": "The URL of this banner image."
}
}
},
"ChannelBrandingSettings": {
"id": "ChannelBrandingSettings",
"type": "object",
"description": "Branding properties of a YouTube channel.",
"properties": {
"channel": {
"$ref": "ChannelSettings",
"description": "Branding properties for the channel view."
},
"hints": {
"type": "array",
"description": "Additional experimental branding properties.",
"items": {
"$ref": "PropertyValue"
}
},
"image": {
"$ref": "ImageSettings",
"description": "Branding properties for branding images."
},
"watch": {
"$ref": "WatchSettings",
"description": "Branding properties for the watch page."
}
}
},
"ChannelContentDetails": {
"id": "ChannelContentDetails",
"type": "object",
"description": "Details about the content of a channel.",
"properties": {
"relatedPlaylists": {
"type": "object",
"properties": {
"favorites": {
"type": "string",
"description": "The ID of the playlist that contains the channel\"s favorite videos. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list."
},
"likes": {
"type": "string",
"description": "The ID of the playlist that contains the channel\"s liked videos. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list."
},
"uploads": {
"type": "string",
"description": "The ID of the playlist that contains the channel\"s uploaded videos. Use the videos.insert method to upload new videos and the videos.delete method to delete previously uploaded videos."
},
"watchHistory": {
"type": "string",
"description": "The ID of the playlist that contains the channel\"s watch history. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list."
},
"watchLater": {
"type": "string",
"description": "The ID of the playlist that contains the channel\"s watch later playlist. Use the playlistItems.insert and playlistItems.delete to add or remove items from that list."
}
}
}
}
},
"ChannelContentOwnerDetails": {
"id": "ChannelContentOwnerDetails",
"type": "object",
"description": "The contentOwnerDetails object encapsulates channel data that is relevant for YouTube Partners linked with the channel.",
"properties": {
"contentOwner": {
"type": "string",
"description": "The ID of the content owner linked to the channel."
},
"timeLinked": {
"type": "string",
"description": "The date and time of when the channel was linked to the content owner. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.",
"format": "date-time"
}
}
},
"ChannelConversionPing": {
"id": "ChannelConversionPing",
"type": "object",
"description": "Pings that the app shall fire (authenticated by biscotti cookie). Each ping has a context, in which the app must fire the ping, and a url identifying the ping.",
"properties": {
"context": {
"type": "string",
"description": "Defines the context of the ping.",
"enum": [
"cview",
"subscribe",
"unsubscribe"
],
"enumDescriptions": [
"",
"",
""
]
},
"conversionUrl": {
"type": "string",
"description": "The url (without the schema) that the player shall send the ping to. It's at caller's descretion to decide which schema to use (http vs https) Example of a returned url: //googleads.g.doubleclick.net/pagead/ viewthroughconversion/962985656/?data=path%3DtHe_path%3Btype%3D cview%3Butuid%3DGISQtTNGYqaYl4sKxoVvKA&labe=default The caller must append biscotti authentication (ms param in case of mobile, for example) to this ping."
}
}
},
"ChannelConversionPings": {
"id": "ChannelConversionPings",
"type": "object",
"description": "The conversionPings object encapsulates information about conversion pings that need to be respected by the channel.",
"properties": {
"pings": {
"type": "array",
"description": "Pings that the app shall fire (authenticated by biscotti cookie). Each ping has a context, in which the app must fire the ping, and a url identifying the ping.",
"items": {
"$ref": "ChannelConversionPing"
}
}
}
},
"ChannelListResponse": {
"id": "ChannelListResponse",
"type": "object",
"properties": {
"etag": {
"type": "string",
"description": "Etag of this resource."
},
"eventId": {
"type": "string",
"description": "Serialized EventId of the request which produced this response."
},
"items": {
"type": "array",
"description": "A list of channels that match the request criteria.",
"items": {
"$ref": "Channel"
}
},
"kind": {
"type": "string",
"description": "Identifies what kind of resource this is. Value: the fixed string \"youtube#channelListResponse\".",
"default": "youtube#channelListResponse"
},
"nextPageToken": {
"type": "string",
"description": "The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set."
},
"pageInfo": {
"$ref": "PageInfo"
},
"prevPageToken": {
"type": "string",
"description": "The token that can be used as the value of the pageToken parameter to retrieve the previous page in the result set."
},
"tokenPagination": {
"$ref": "TokenPagination"
},
"visitorId": {
"type": "string",
"description": "The visitorId identifies the visitor."
}
}
},
"ChannelLocalization": {
"id": "ChannelLocalization",
"type": "object",
"description": "Channel localization setting",
"properties": {
"description": {
"type": "string",
"description": "The localized strings for channel's description."
},
"title": {
"type": "string",
"description": "The localized strings for channel's title."
}
}
},
"ChannelProfileDetails": {
"id": "ChannelProfileDetails",
"type": "object",
"properties": {
"channelId": {
"type": "string",
"description": "The YouTube channel ID."
},
"channelUrl": {
"type": "string",
"description": "The channel's URL."
},
"displayName": {
"type": "string",
"description": "The channel's display name."
},
"profileImageUrl": {
"type": "string",
"description": "The channels's avatar URL."
}
}
},
"ChannelSection": {
"id": "ChannelSection",
"type": "object",
"properties": {
"contentDetails": {
"$ref": "ChannelSectionContentDetails",
"description": "The contentDetails object contains details about the channel section content, such as a list of playlists or channels featured in the section."
},
"etag": {
"type": "string",
"description": "Etag of this resource."
},
"id": {
"type": "string",
"description": "The ID that YouTube uses to uniquely identify the channel section."
},
"kind": {
"type": "string",
"description": "Identifies what kind of resource this is. Value: the fixed string \"youtube#channelSection\".",
"default": "youtube#channelSection"
},
"localizations": {
"type": "object",
"description": "Localizations for different languages",
"additionalProperties": {
"$ref": "ChannelSectionLocalization",
"description": "The language tag, using string since map_key require simple types."
}
},
"snippet": {
"$ref": "ChannelSectionSnippet",
"description": "The snippet object contains basic details about the channel section, such as its type, style and title."
},
"targeting": {
"$ref": "ChannelSectionTargeting",
"description": "The targeting object contains basic targeting settings about the channel section."
}
}
},
"ChannelSectionContentDetails": {
"id": "ChannelSectionContentDetails",
"type": "object",
"description": "Details about a channelsection, including playlists and channels.",
"properties": {
"channels": {
"type": "array",
"description": "The channel ids for type multiple_channels.",
"items": {
"type": "string"
}
},
"playlists": {
"type": "array",
"description": "The playlist ids for type single_playlist and multiple_playlists. For singlePlaylist, only one playlistId is allowed.",
"items": {
"type": "string"
}
}
}
},
"ChannelSectionListResponse": {
"id": "ChannelSectionListResponse",
"type": "object",
"properties": {
"etag": {
"type": "string",
"description": "Etag of this resource."
},
"eventId": {
"type": "string",
"description": "Serialized EventId of the request which produced this response."
},
"items": {
"type": "array",
"description": "A list of ChannelSections that match the request criteria.",
"items": {
"$ref": "ChannelSection"
}
},
"kind": {
"type": "string",
"description": "Identifies what kind of resource this is. Value: the fixed string \"youtube#channelSectionListResponse\".",
"default": "youtube#channelSectionListResponse"
},
"visitorId": {
"type": "string",
"description": "The visitorId identifies the visitor."
}
}
},
"ChannelSectionLocalization": {
"id": "ChannelSectionLocalization",
"type": "object",
"description": "ChannelSection localization setting",
"properties": {
"title": {
"type": "string",
"description": "The localized strings for channel section's title."
}
}
},
"ChannelSectionSnippet": {
"id": "ChannelSectionSnippet",
"type": "object",
"description": "Basic details about a channel section, including title, style and position.",
"properties": {
"channelId": {
"type": "string",
"description": "The ID that YouTube uses to uniquely identify the channel that published the channel section."
},
"defaultLanguage": {
"type": "string",
"description": "The language of the channel section's default title and description."
},
"localized": {
"$ref": "ChannelSectionLocalization",
"description": "Localized title, read-only."
},
"position": {
"type": "integer",
"description": "The position of the channel section in the channel.",
"format": "uint32"
},
"style": {
"type": "string",
"description": "The style of the channel section.",
"enum": [
"channelsectionStyleUndefined",
"horizontalRow",
"verticalList"
],
"enumDescriptions": [
"",
"",
""
]
},
"title": {
"type": "string",
"description": "The channel section's title for multiple_playlists and multiple_channels."
},
"type": {
"type": "string",
"description": "The type of the channel section.",
"enum": [
"allPlaylists",
"channelsectionTypeUndefined",
"completedEvents",
"likedPlaylists",
"likes",
"liveEvents",
"multipleChannels",
"multiplePlaylists",
"popularUploads",
"postedPlaylists",
"postedVideos",
"recentActivity",
"recentPosts",
"recentUploads",
"singlePlaylist",
"subscriptions",
"upcomingEvents"
],
"enumDescriptions": [
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
"",
""
]
}
}
},
"ChannelSectionTargeting": {
"id": "ChannelSectionTargeting",
"type": "object",
"description": "ChannelSection targeting setting.",
"properties": {
"countries": {
"type": "array",
"description": "The country the channel section is targeting.",
"items": {
"type": "string"
}
},
"languages": {
"type": "array",
"description": "The language the channel section is targeting.",
"items": {
"type": "string"
}
},
"regions": {
"type": "array",
"description": "The region the channel section is targeting.",
"items": {
"type": "string"
}
}
}
},
"ChannelSettings": {
"id": "ChannelSettings",
"type": "object",
"description": "Branding properties for the channel view.",
"properties": {
"country": {
"type": "string",
"description": "The country of the channel."
},
"defaultLanguage": {
"type": "string"
},
"defaultTab": {
"type": "string",
"description": "Which content tab users should see when viewing the channel."
},
"description": {
"type": "string",
"description": "Specifies the channel description."
},
"featuredChannelsTitle": {
"type": "string",
"description": "Title for the featured channels tab."
},
"featuredChannelsUrls": {
"type": "array",
"description": "The list of featured channels.",
"items": {
"type": "string"
}
},
"keywords": {
"type": "string",
"description": "Lists keywords associated with the channel, comma-separated."
},
"moderateComments": {
"type": "boolean",
"description": "Whether user-submitted comments left on the channel page need to be approved by the channel owner to be publicly visible."
},
"profileColor": {
"type": "string",
"description": "A prominent color that can be rendered on this channel page."
},
"showBrowseView": {
"type": "boolean",
"description": "Whether the tab to browse the videos should be displayed."
},
"showRelatedChannels": {
"type": "boolean",
"description": "Whether related channels should be proposed."
},
"title": {
"type": "string",
"description": "Specifies the channel title."
},
"trackingAnalyticsAccountId": {
"type": "string",
"description": "The ID for a Google Analytics account to track and measure traffic to the channels."
},
"unsubscribedTrailer": {
"type": "string",
"description": "The trailer of the channel, for users that are not subscribers."
}
}
},
"ChannelSnippet": {
"id": "ChannelSnippet",
"type": "object",
"description": "Basic details about a channel, including title, description and thumbnails.",
"properties": {
"country": {
"type": "string",
"description": "The country of the channel."
},
"customUrl": {
"type": "string",
"description": "The custom url of the channel."
},
"defaultLanguage": {
"type": "string",
"description": "The language of the channel's default title and description."
},
"description": {
"type": "string",
"description": "The description of the channel."
},
"localized": {
"$ref": "ChannelLocalization",
"description": "Localized title and description, read-only."
},
"publishedAt": {
"type": "string",
"description": "The date and time that the channel was created. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.",
"format": "date-time"
},
"thumbnails": {
"$ref": "ThumbnailDetails",
"description": "A map of thumbnail images associated with the channel. For each object in the map, the key is the name of the thumbnail image, and the value is an object that contains other information about the thumbnail.\n\nWhen displaying thumbnails in your application, make sure that your code uses the image URLs exactly as they are returned in API responses. For example, your application should not use the http domain instead of the https domain in a URL returned in an API response.\n\nBeginning in July 2018, channel thumbnail URLs will only be available in the https domain, which is how the URLs appear in API responses. After that time, you might see broken images in your application if it tries to load YouTube images from the http domain."
},
"title": {
"type": "string",
"description": "The channel's title."
}
}
},
"ChannelStatistics": {
"id": "ChannelStatistics",
"type": "object",
"description": "Statistics about a channel: number of subscribers, number of videos in the channel, etc.",
"properties": {
"commentCount": {
"type": "string",
"description": "The number of comments for the channel.",
"format": "uint64"
},
"hiddenSubscriberCount": {
"type": "boolean",
"description": "Whether or not the number of subscribers is shown for this user."
},
"subscriberCount": {
"type": "string",
"description": "The number of subscribers that the channel has.",
"format": "uint64"
},
"videoCount": {
"type": "string",
"description": "The number of videos uploaded to the channel.",
"format": "uint64"
},
"viewCount": {
"type": "string",
"description": "The number of times the channel has been viewed.",
"format": "uint64"
}
}
},
"ChannelStatus": {
"id": "ChannelStatus",
"type": "object",
"description": "JSON template for the status part of a channel.",
"properties": {
"isLinked": {
"type": "boolean",
"description": "If true, then the user is linked to either a YouTube username or G+ account. Otherwise, the user doesn't have a public YouTube identity."
},
"longUploadsStatus": {
"type": "string",
"description": "The long uploads status of this channel. See",
"enum": [
"allowed",
"disallowed",
"eligible",
"longUploadsUnspecified"
],
"enumDescriptions": [
"",
"",
"",
""
]
},
"privacyStatus": {
"type": "string",
"description": "Privacy status of the channel.",
"enum": [
"private",
"public",
"unlisted"
],
"enumDescriptions": [
"",
"",
""
]
}
}
},
"ChannelTopicDetails": {
"id": "ChannelTopicDetails",
"type": "object",
"description": "Freebase topic information related to the channel.",
"properties": {
"topicCategories": {
"type": "array",
"description": "A list of Wikipedia URLs that describe the channel's content.",
"items": {
"type": "string"
}
},
"topicIds": {
"type": "array",
"description": "A list of Freebase topic IDs associated with the channel. You can retrieve information about each topic using the Freebase Topic API.",
"items": {
"type": "string"
}
}
}
},
"Comment": {
"id": "Comment",
"type": "object",
"description": "A comment represents a single YouTube comment.",
"properties": {
"etag": {
"type": "string",
"description": "Etag of this resource."
},
"id": {
"type": "string",
"description": "The ID that YouTube uses to uniquely identify the comment."
},
"kind": {
"type": "string",
"description": "Identifies what kind of resource this is. Value: the fixed string \"youtube#comment\".",
"default": "youtube#comment"
},
"snippet": {
"$ref": "CommentSnippet",
"description": "The snippet object contains basic details about the comment."
}
}
},
"CommentListResponse": {
"id": "CommentListResponse",
"type": "object",
"properties": {
"etag": {
"type": "string",
"description": "Etag of this resource."
},
"eventId": {
"type": "string",
"description": "Serialized EventId of the request which produced this response."
},
"items": {
"type": "array",
"description": "A list of comments that match the request criteria.",
"items": {
"$ref": "Comment"
}
},
"kind": {
"type": "string",
"description": "Identifies what kind of resource this is. Value: the fixed string \"youtube#commentListResponse\".",
"default": "youtube#commentListResponse"
},
"nextPageToken": {
"type": "string",
"description": "The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set."
},
"pageInfo": {
"$ref": "PageInfo"
},
"tokenPagination": {
"$ref": "TokenPagination"
},
"visitorId": {
"type": "string",
"description": "The visitorId identifies the visitor."
}
}
},
"CommentSnippet": {
"id": "CommentSnippet",
"type": "object",
"description": "Basic details about a comment, such as its author and text.",
"properties": {
"authorChannelId": {
"type": "any",
"description": "The id of the author's YouTube channel, if any."
},
"authorChannelUrl": {
"type": "string",
"description": "Link to the author's YouTube channel, if any."
},
"authorDisplayName": {
"type": "string",
"description": "The name of the user who posted the comment."
},
"authorProfileImageUrl": {
"type": "string",
"description": "The URL for the avatar of the user who posted the comment."
},
"canRate": {
"type": "boolean",
"description": "Whether the current viewer can rate this comment."
},
"channelId": {
"type": "string",
"description": "The id of the corresponding YouTube channel. In case of a channel comment this is the channel the comment refers to. In case of a video comment it's the video's channel."
},
"likeCount": {
"type": "integer",
"description": "The total number of likes this comment has received.",
"format": "uint32"
},
"moderationStatus": {
"type": "string",
"description": "The comment's moderation status. Will not be set if the comments were requested through the id filter.",
"enum": [
"heldForReview",
"likelySpam",
"published",
"rejected"
],
"enumDescriptions": [
"",
"",
"",
""
]
},
"parentId": {
"type": "string",
"description": "The unique id of the parent comment, only set for replies."
},
"publishedAt": {
"type": "string",
"description": "The date and time when the comment was orignally published. The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.",
"format": "date-time"
},
"textDisplay": {
"type": "string",
"description": "The comment's text. The format is either plain text or HTML dependent on what has been requested. Even the plain text representation may differ from the text originally posted in that it may replace video links with video titles etc."
},
"textOriginal": {
"type": "string",
"description": "The comment's original raw text as initially posted or last updated. The original text will only be returned if it is accessible to the viewer, which is only guaranteed if the viewer is the comment's author."
},
"updatedAt": {
"type": "string",
"description": "The date and time when was last updated . The value is specified in ISO 8601 (YYYY-MM-DDThh:mm:ss.sZ) format.",
"format": "date-time"
},
"videoId": {
"type": "string",
"description": "The ID of the video the comment refers to, if any."
},
"viewerRating": {
"type": "string",
"description": "The rating the viewer has given to this comment. For the time being this will never return RATE_TYPE_DISLIKE and instead return RATE_TYPE_NONE. This may change in the future.",
"enum": [
"dislike",
"like",
"none",
"unspecified"
],
"enumDescriptions": [
"",
"",
"",
""
]
}
}
},
"CommentThread": {
"id": "CommentThread",
"type": "object",
"description": "A comment thread represents information that applies to a top level comment and all its replies. It can also include the top level comment itself and some of the replies.",
"properties": {
"etag": {
"type": "string",
"description": "Etag of this resource."
},
"id": {
"type": "string",
"description": "The ID that YouTube uses to uniquely identify the comment thread."
},
"kind": {
"type": "string",
"description": "Identifies what kind of resource this is. Value: the fixed string \"youtube#commentThread\".",
"default": "youtube#commentThread"
},
"replies": {
"$ref": "CommentThreadReplies",
"description": "The replies object contains a limited number of replies (if any) to the top level comment found in the snippet."
},
"snippet": {
"$ref": "CommentThreadSnippet",
"description": "The snippet object contains basic details about the comment thread and also the top level comment."
}
}
},
"CommentThreadListResponse": {
"id": "CommentThreadListResponse",
"type": "object",
"properties": {
"etag": {
"type": "string",
"description": "Etag of this resource."
},
"eventId": {
"type": "string",
"description": "Serialized EventId of the request which produced this response."
},
"items": {
"type": "array",
"description": "A list of comment threads that match the request criteria.",
"items": {
"$ref": "CommentThread"
}
},
"kind": {
"type": "string",
"description": "Identifies what kind of resource this is. Value: the fixed string \"youtube#commentThreadListResponse\".",
"default": "youtube#commentThreadListResponse"
},
"nextPageToken": {
"type": "string",
"description": "The token that can be used as the value of the pageToken parameter to retrieve the next page in the result set."
},
"pageInfo": {
"$ref": "PageInfo"
},
"tokenPagination": {
"$ref": "TokenPagination"
},
"visitorId": {
"type": "string",
"description": "The visitorId identifies the visitor."
}
}
},
"CommentThreadReplies": {
"id": "CommentThreadReplies",
"type": "object",
"description": "Comments written in (direct or indirect) reply to the top level comment.",
"properties": {
"comments": {
"type": "array",
"description": "A limited number of replies. Unless the number of replies returned equals total_reply_count in the snippet the returned replies are only a subset of the total number of replies.",
"items": {
"$ref": "Comment"
}
}
}
},
"CommentThreadSnippet": {
"id": "CommentThreadSnippet",
"type": "object",
"description": "Basic details about a comment thread.",
"properties": {
"canReply": {
"type": "boolean",
"description": "Whether the current viewer of the thread can reply to it. This is viewer specific - other viewers may see a different value for this field."
},
"channelId": {
"type": "string",
"description": "The YouTube channel the comments in the thread refer to or the channel with the video the comments refer to. If video_id isn't set the comments refer to the channel itself."
},
"isPublic": {
"type": "boolean",
"description": "Whether the thread (and therefore all its comments) is visible to all YouTube users."
},
"topLevelComment": {
"$ref": "Comment",
"description": "The top level comment of this thread."
},
"totalReplyCount": {
"type": "integer",
"description": "The total number of replies (not including the top level comment).",
"format": "uint32"
},
"videoId": {
"type": "string",
"description": "The ID of the video the comments refer to, if any. No video_id implies a channel discussion comment."
}
}
},
"ContentRating": {
"id": "ContentRating",
"type": "object",
"description": "Ratings schemes. The country-specific ratings are mostly for movies and shows. NEXT_ID: 72",
"properties": {
"acbRating": {
"type": "string",
"description": "The video's Australian Classification Board (ACB) or Australian Communications and Media Authority (ACMA) rating. ACMA ratings are used to classify children's television programming.",
"enum": [
"acbC",
"acbE",
"acbG",
"acbM",
"acbMa15plus",
"acbP",
"acbPg",
"acbR18plus",
"acbUnrated"
],
"enumDescriptions": [
"",
"",
"",
"",
"",
"",
"",
"",
""
]
},
"agcomRating": {
"type": "string",
"description": "The video's rating from Italy's Autorità per le Garanzie nelle Comunicazioni (AGCOM).",
"enum": [
"agcomT",
"agcomUnrated",
"agcomVm14",
"agcomVm18"
],
"enumDescriptions": [
"",
"",
"",
""
]
},
"anatelRating": {
"type": "string",
"description": "The video's Anatel (Asociación Nacional de Televisión) rating for Chilean television.",
"enum": [
"anatelA",
"anatelF",
"anatelI",
"anatelI10",
"anatelI12",
"anatelI7",
"anatelR",
"anatelUnrated"
],
"enumDescriptions": [
"",
"",
"",
"",
"",
"",
"",
""
]
},
"bbfcRating": {
"type": "string",
"description": "The video's British Board of Film Classification (BBFC) rating.",
"enum": [
"bbfc12",
"bbfc12a",
"bbfc15",
"bbfc18",
"bbfcPg",
"bbfcR18",
"bbfcU",
"bbfcUnrated"
],
"enumDescriptions": [
"",
"",
"",
"",
"",
"",
"",
""
]
},
"bfvcRating": {
"type": "string",
"description": "The video's rating from Thailand's Board of Film and Video Censors.",
"enum": [
"bfvc13",
"bfvc15",
"bfvc18",
"bfvc20",
"bfvcB",
"bfvcE",
"bfvcG",
"bfvcUnrated"
],
"enumDescriptions": [
"",
"",
"",
"",
"",
"",
"",
""
]
},
"bmukkRating": {
"type": "string",
"description": "The video's rating from the Austrian Board of Media Classification (Bundesministerium für Unterricht, Kunst und Kultur).",
"enum": [
"bmukk10",
"bmukk12",
"bmukk14",
"bmukk16",
Reply
#2
Why are you asking here, instead of the author(s)?
Reply
#3
(Mar-14-2020, 07:35 AM)ndc85430 Wrote: Why are you asking here, instead of the author(s)?

I don't have contact to him, that's why Iam asking here
Reply
#4
You can raise an issue on GitHub.
Reply
#5
(Mar-14-2020, 04:14 PM)mateusz135 Wrote: I don't have contact to him
you can open an issue in the repo: https://github.com/BOT-HAT/Youtube-First...Bot/issues
If you can't explain it to a six year old, you don't understand it yourself, Albert Einstein
How to Ask Questions The Smart Way: link and another link
Create MCV example
Debug small programs

Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  How to add multi-line comment section? Winfried 1 139 Mar-24-2024, 04:34 PM
Last Post: deanhystad
Question remove all comment ? SpongeB0B 7 1,188 Oct-27-2023, 05:40 PM
Last Post: deanhystad
  Regular Expression search to comment lines of code Gman2233 5 1,593 Sep-08-2022, 06:57 AM
Last Post: ndc85430
  Block comment in Intellij kam_uk 2 2,247 Nov-15-2020, 05:22 PM
Last Post: kam_uk
  Python 3 Elementtree and Comment First gw1500se 3 3,661 May-25-2020, 09:02 PM
Last Post: gw1500se
  pdb says "SyntaxError: unexpected EOF" on comment pwannh 1 3,035 Nov-29-2018, 04:17 PM
Last Post: nilamo
  Help extracting comment data from multiple zip files SoulsKeeper 10 6,021 Sep-10-2018, 10:33 AM
Last Post: SoulsKeeper
  python crontab remove_all(comment="Minute*") vvarrior 1 2,737 Aug-06-2018, 12:39 AM
Last Post: Larz60+
  a solo \ at end of comment Skaperen 2 2,599 Jul-22-2018, 10:16 PM
Last Post: Skaperen
  comment indentations Skaperen 12 8,987 Jan-29-2017, 06:56 AM
Last Post: Skaperen

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020