## Samples in this directory: ### [Add a channel section](/php/add_channel_section.php) 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](/php/add_subscription.php) Method: youtube.subscriptions.insert
Description: This sample calls the API's subscriptions.insert method to add a subscription to a specified channel. ### [Create a playlist](/php/playlist_updates.php) 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](/php/comment_handling.php) Method: youtube.commentThreads.list, youtube.comments.insert, youtube.comments.list, youtube.comments.update, youtube.comments.setModerationStatus, youtube.comments.markAsSpam, youtube.comments.delete
Description: The following code sample demonstrates how to use the following API methods to create and manage comments:
### [Create and manage comment threads](/php/comment_threads.php) 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:
### [Create and manage YouTube video caption tracks](/php/captions.php) 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:
### [Retrieve my uploads](/php/my_uploads.php) 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](/php/search.php) 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](/php/geolocation_search.php) 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](/php/channel_localizations.php) 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:
### [Set and retrieve localized channel section metadata](/php/channel_section_localizations.php) 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:
### [Set and retrieve localized playlist metadata](/php/playlist_localizations.php) 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:
### [Set and retrieve localized video metadata](/php/video_localizations.php) 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:
### [Shuffle existing channel sections](/php/shuffle_channel_sections.php) 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, shuffles them, and then calls channelSections.update to change the position of each.

More information on channel sections is available in the YouTube Help Center. ### [Update a video](/php/update_video.php) Method: youtube.videos.update
Description: This code sample demonstrates how to add tags into an existing video.

The following code sample calls the API's youtube.videos.list method with id parameter set to videoId to get the video object. Using this video object, the sample gets the list of tags and appends new tags at the end of this list. Finally, the code calls youtube.videos.update method with updated video object to persist these changes on YouTube. ### [Upload a banner image and set as channel's banner](/php/upload_banner.php) 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 this image. ### [Upload a custom video thumbnail image](/php/upload_thumbnail.php) Method: youtube.thumbnails.set
Description: This sample demonstrates how to upload a custom video thumbnail to YouTube and set it for a video. It calls the API's youtube.thumbnails.set method with videoId parameter set to a video ID to use a custom image as a thumbnail to the video. For the image upload, the program utilizes the Google_MediaFileUpload class with the resumable parameter set to true to upload the image piece-by-piece, allowing for subsequent retries to resume uploading from a point close to where the previous retry failed, a feature useful for programs that need to upload large files. ### [Upload a video](/php/resumable_upload.php) Method: youtube.videos.insert
Description: The following code sample calls the API's videos.insert method to add a video to user's channel. The code also utilizes Google_MediaFileUpload class with the resumable upload parameter set to true to be able to to upload the video in chunks. ### [Create a broadcast and stream](/php/create_broadcast.php) 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](/php/list_broadcasts.php) 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](/php/list_streams.php) 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. ### [Create a reporting job](/php/create_reporting_job.php) 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](/php/retrieve_reports.php) 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.