Find file History
Permalink
Type Name Latest commit message Commit time
..
Failed to load latest commit information.
README.md Add prerequisites Oct 27, 2017
add_channel_section.py Update auth libraries used in example Oct 19, 2017
add_featured_video.py "Added sample: python/add_featured_video.py" Dec 9, 2013
add_subscription.py Update auth libraries used in example Oct 20, 2017
captions.py "Updating samples to reflect recent changes." Oct 15, 2015
channel_bulletin.py "Added sample: python/channel_bulletin.py" Dec 9, 2013
channel_localizations.py Handle error case Oct 27, 2017
channel_section_localizations.py Handle error case Oct 27, 2017
comment_handling.py "Updating samples to reflect recent changes." Oct 15, 2015
comment_threads.py "Updating samples to reflect recent changes." Oct 15, 2015
create_broadcast.py "Added sample: python/create_broadcast.py" Dec 9, 2013
create_reporting_job.py Support more options, update auth flow Oct 27, 2017
geolocation_search.py Remove oauth2client usages Oct 20, 2017
like_video.py Update auth libraries, add rating argument Oct 20, 2017
list_broadcasts.py Update auth libraries used in example Oct 20, 2017
list_streams.py Update auth libraries used in example Oct 20, 2017
my_uploads.py Update auth libraries, fix script Oct 20, 2017
playlist_localizations.py Update auth libraries and make script improvements Oct 27, 2017
playlist_updates.py Update auth libraries, add title/description args Oct 26, 2017
quickstart.py Remove commented out statement Sep 29, 2017
quickstart_web.py Minor formatting fixes Sep 29, 2017
retrieve_reports.py Update auth libraries, add options, documentation Oct 27, 2017
search.py Fix instructional comment Oct 20, 2017
set_watermark.py "Updating samples to reflect recent changes." Oct 15, 2015
shuffle_channel_sections.py Update auth libraries Oct 23, 2017
unset_watermark.py "Updating samples to reflect recent changes." Oct 15, 2015
update_video.py Update auth libraries, add snippet metadata opts Oct 24, 2017
upload_banner.py "Updating samples to reflect recent changes." Oct 15, 2015
upload_thumbnail.py "Added sample: python/upload_thumbnail.py" Dec 9, 2013
upload_video.py Update auth libs, default privacy status Oct 27, 2017
video_localizations.py For list action, video may not have localizations Oct 27, 2017
yt_analytics_report.py Fix typos in comments Oct 27, 2017
yt_analytics_v2.py Add .py sample for calling YT Analytics API (v2) Apr 26, 2018

README.md

Prerequisites

  • Python 2.6 or greater

  • The pip package management tool

  • The Google APIs Client Library for Python:

    pip install --upgrade google-api-python-client
    
  • The google-auth, google-auth-oauthlib, and google-auth-httplib2 for user authorization.

    pip install --upgrade google-auth google-auth-oauthlib google-auth-httplib2
    

Setting up your project and running code samples

  1. Create a project in the API Console and set up credentials for a web application. Set the authorized redirect URIs as appropriate.

  2. Save the client_secrets.json file associated with your credentials to a local file.

  3. Copy the full code sample to a local file in the same directory as the client_secrets.json file (or modify the sample to correctly identify that file's location.

  4. Run the sample from the command line and set command-line arguments as necessary:

    python sample.py --arg1=value1 --arg2=value2 ...

  5. Most samples print something to STDOUT. You can also check the YouTube website to see the effects of requests that write data, such as requests that create playlists or channel sections.

Samples in this directory:

Add a channel section

Method: youtube.channelSections.insert
Description: This sample calls the API's channelSections.insert method to create channel sections. The code accepts a number of command line arguments that let you specify the section's type, display style, title, position, and content.

This sample also updates the channel's brandingSettings.channel.showBrowseView property so that the channel displays content in a browse view (rather than a feed view). A channel's sections are only visible if the channel displays content in a browse view.

More information on channel sections is available in the YouTube Help Center.

Add a channel subscription

Method: youtube.subscriptions.insert
Description: This sample calls the API's subscriptions.insert method to add a subscription to a specified channel.

Add a featured video

Method: youtube.channels.update
Description: This sample calls the API's channels.update method to set invideoPromotion properties for the channel.

Create a playlist

Method: youtube.playlists.insert
Description: This sample calls the API's playlists.insert method to create a private playlist owned by the channel authorizing the request.

Create and manage comments

Method: youtube.commentThreads.list, youtube.comments.insert, youtube.comments.list, youtube.comments.update, youtube.comments.setModerationStatus, youtube.comments.markAsSpam, youtube.comments.delete
Description: This sample demonstrates how to use the following API methods to create and manage comments:

  • It calls the commentThreads.list method with the videoId parameter set to retrieve comments for a video.
  • It calls the comments.insert method with the parentId parameter set to reply to an existing comment.
  • It calls the comments.list method with the parentId parameter to retrieve the comments in the thread.
  • It calls the comments.update method with comment in the request body to update a comment.
  • It calls the comments.setModerationStatus method to set the moderation status of the comment, the comments.markAsSpam method to mark the comment as spam, and the comments.delete method to delete the comment, using the id parameter to identify the comment.

Create and manage comment threads

Method: youtube.commentThreads.insert, youtube.commentThreads.list, youtube.commentThreads.update
Description: This sample demonstrates how to use the following API methods to create and manage top-level comments:

  • It calls the commentThreads.insert method once with the channelId parameter to create a channel comment and once with the videoId parameter to create a video comment.
  • It calls the commentThreads.list method once with the channelId parameter to retrieve channel comments and once with the videoId parameter to retrieve video comments.
  • It calls the commentThreads.update method once to update a video comment and then again to update a channel comment. In each case, the request body contains the comment resource being updated.

Create and manage YouTube video caption tracks

Method: youtube.captions.insert, youtube.captions.list, youtube.captions.update, youtube.captions.download, youtube.captions.delete
Description: This sample demonstrates how to use the following API methods to create and manage YouTube video caption tracks:

  • It calls the captions.insert method with the isDraft parameter set to true to upload a caption track in draft status.
  • It calls the captions.list method with the videoId parameter to retrieve video caption tracks.
  • It calls the captions.update method with the caption in the request body to update a caption track.
  • It calls the captions.download method to download the caption track.
  • It calls the captions.delete method to delete the caption track, using the id parameter to identify the caption track.

Like a video

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

Post a channel bulletin

Method: youtube.activities.insert
Description: This sample calls the API's activities.insert method to post a bulletin to the channel associated with the request.

Remove a watermark image from a channel

Method: youtube.watermarks.unset
Description: This sample calls the API's watermarks.unset method to remove the watermark image for a channel. The request must be authorized by the channel that owns the video.

Retrieve my uploads

Method: youtube.playlistItems.list
Description: This sample calls the API's playlistItems.list method to retrieve a list of videos uploaded to the channel associated with the request. The code also calls the channels.list method with the mine parameter set to true to retrieve the playlist ID that identifies the channel's uploaded videos.

Search by keyword

Method: youtube.search.list
Description: This sample calls the API's search.list method to retrieve search results associated with a particular keyword.

Search by location

Method: youtube.search.list, youtube.videos.list
Description: This sample calls the API's search.list method with the type, q, location, and locationRadius parameters to retrieve search results matching the provided keyword within the radius centered at a particular location. Using the video ids from the search result, the sample calls the API's videos.list method to retrieve location details of each video.

Set and retrieve localized channel metadata

Method: youtube.channels.update, youtube.channels.list
Description: This sample demonstrates how to use the following API methods to set and retrieve localized metadata for a channel:

  • It calls the channels.update method to update the default language of a channel's metadata and to add a localized version of this metadata in a selected language. Note that to set the default language for a channel resource, you actually need to update the brandingSettings.channel.defaultLanguage property.
  • It calls the channels.list method with the hl parameter set to a specific language to retrieve localized metadata in that language.
  • It calls the channels.list method and includes localizations in the part parameter value to retrieve all of the localized metadata for that channel.

Set and retrieve localized channel section metadata

Method: youtube.channelSections.update, youtube.channelSections.list
Description: This sample demonstrates how to use the following API methods to set and retrieve localized metadata for a channel section:

  • It calls the channelSections.update method to update the default language of a channel section's metadata and to add a localized version of this metadata in a selected language.
  • It calls the channelSections.list method with the hl parameter set to a specific language to retrieve localized metadata in that language.
  • It calls the channelSections.list method and includes localizations in the part parameter value to retrieve all of the localized metadata for that channel section.

Set and retrieve localized playlist metadata

Method: youtube.playlists.update, youtube.playlists.list
Description: This sample demonstrates how to use the following API methods to set and retrieve localized metadata for a playlist:

  • It calls the playlists.update method to update the default language of a playlist's metadata and to add a localized version of this metadata in a selected language.
  • It calls the playlists.list method with the hl parameter set to a specific language to retrieve localized metadata in that language.
  • It calls the playlists.list method and includes localizations in the part parameter value to retrieve all of the localized metadata for that playlist.

Set and retrieve localized video metadata

Method: youtube.videos.update, youtube.videos.list
Description: This sample demonstrates how to use the following API methods to set and retrieve localized metadata for a video:

  • It calls the videos.update method to update the default language of a video's metadata and to add a localized version of this metadata in a selected language.
  • It calls the videos.list method with the hl parameter set to a specific language to retrieve localized metadata in that language.
  • It calls the videos.list method and includes localizations in the part parameter value to retrieve all of the localized metadata for that video.

Shuffle existing channel sections

Method: youtube.channelSections.list,youtube.channelSections.update
Description: This sample calls the API's channelSections.list method to get the list of current channel sections. Then it shuffles the list and calls channelSections.update to change the position of each item.

More information on channel sections is available in the YouTube Help Center.

Update a video

Method: youtube.videos.update
Description: This sample calls the API's videos.update method to update a video owned by the channel authorizing the request.

Upload a banner image and set as channel's banner

Method: youtube.channelBanners.insert, youtube.channels.update
Description: This sample calls the API's channelBanners.insert method to upload an image. With the returned URL, the sample calls channels.update method to update the channel's banner to that image.

Upload a video

Method: youtube.videos.insert
Description: This sample calls the API's videos.insert method to upload a video to the channel associated with the request.

Upload a video thumbnail image

Method: youtube.thumbnails.set
Description: This sample calls the API's thumbnails.set method to upload an image and set it as the thumbnail image for a video. The request must be authorized by the channel that owns the video.

Upload a watermark image and set it for a channel

Method: youtube.watermarks.set
Description: This sample calls the API's watermarks.set method to upload an image and set it as the watermark image for a channel. The request must be authorized by the channel that owns the video.

Create a broadcast and stream

Method: youtube.liveBroadcasts.bind,youtube.liveBroadcasts.insert,youtube.liveStreams.insert
Description: This sample calls the API's liveBroadcasts.insert and liveStreams.insert methods to create a broadcast and a stream. Then, it calls the liveBroadcasts.bind method to bind the stream to the broadcast.

Retrieve a channel's broadcasts

Method: youtube.liveBroadcasts.list
Description: This sample calls the API's liveBroadcasts.list method to retrieve a list of broadcasts for the channel associated with the request. By default, the request retrieves all broadcasts for the channel, but you can also specify a value for the --broadcast-status option to only retrieve broadcasts with a particular status.

Retrieve a channel's live video streams

Method: youtube.liveStreams.list
Description: This sample calls the API's liveStreams.list method to retrieve a list of video stream settings that a channel can use to broadcast live events on YouTube.

Retrieve top 10 videos by viewcount

Method: youtubeAnalytics.reports.query
Description: This sample calls the API's reports.query method to retrieve YouTube Analytics data. By default, the report retrieves the top 10 videos based on viewcounts, and it returns several metrics for those videos, sorting the results in reverse order by viewcount. By setting command line parameters, you can use the same code to retrieve other reports as well.

Create a reporting job

Method: youtubeReporting.reportTypes.list, youtubeReporting.jobs.create
Description: This sample demonstrates how to create a reporting job. It calls the reportTypes.list method to retrieve a list of available report types. It then calls the jobs.create method to create a new reporting job.

Retrieve reports

Method: youtubeReporting.jobs.list, youtubeReporting.reports.list
Description: This sample demonstrates how to retrieve reports created by a specific job. It calls the jobs.list method to retrieve reporting jobs. It then calls the reports.list method with the jobId parameter set to a specific job id to retrieve reports created by that job. Finally, the sample prints out the download URL for each report.