YouTube API

Last updated

The YouTube Application Programming Interface (YouTube API) allows developers to access video statistics and YouTube channels data via two types of calls, REST and XML-RPC. Google describe YouTube's API resources as "APIs and Tools that let you bring the YouTube experience to your webpage, application or device." [1]

Contents

Players and Player APIs

The Players and Player APIs section identifies ways you can let your users watch YouTube videos in your application and control the playback experience. With an embedded YouTube player, you can integrate the YouTube video playback experience directly in your web page or application. You can use player parameters to customize the player's appearance, and you can also use Player APIs to control the player directly from your web page or app. [2]

Player APIs and tools

Android

  • Player API
  • Player API sample app
  • Player API Reference
  • YouTube Direct sample app

The minimum version supported of Android for the most recent versions of the API's is currently version 2.2. The Android device must be running the YouTube app version 4.2.16. Then using a web key, it is possible to use Googles API's through a developer enabled Android phone. [3]

iOS

  • Player IFrame API
  • YouTube Direct Sample App

Using the iOS versions of the APIs is very similar to the Android explanation. However it involves using the Google Cloud Console. From there you are able to control the APIs and set up the APIs to work with your videos. You will also need a Client ID and a Client Secret; which can both be downloaded from Google's API Site. After this, it is a simple process of running the sample and the APIs should then be properly integrated. [4]

Other APIs include resources that can be implemented into a 3rd party website. These are the usual social network integrated APIs that we regularly come across such as the Facebook like button or the Twitter follow button. YouTube widget APIs include:

  • Subscribe Button
  • Upload Widget
  • Player API Demo
  • Player API Code Playground

Data and Analytics APIs

The Data and Analytics APIs section briefly describes APIs that let your application access features and data normally available on the YouTube website. [5]

YouTube API V3

The YouTube Data API (v3) lets you incorporate YouTube functionality into your own application. You can use the API to fetch search results and to retrieve, insert, update, and delete resources like videos or playlists.

In conjunction with the YouTube Player APIs and the YouTube Analytics API, the API lets your application provide a full-fledged YouTube experience that includes search and discovery, content creation, video playback, account management, and viewer statistics.

youtube.activities.insertPosts a bulletin for a specific channel. (The user submitting the request must be authorized to act on the channel's behalf.)

Note: Even though an activity resource can contain information about actions like a user rating a video or marking a video as a favorite, you need to use other API methods to generate those activity resources. For example, you would use the API's videos.rate() method to rate a video and the playlistItems.insert() method to mark a video as a favorite.

youtube.activities.listReturns a list of channel activity events that match the request criteria. For example, you can retrieve events associated with a particular channel, events associated with the user's subscriptions and Google+ friends, or the YouTube home page feed, which is customized for each user.
youtube.channelBanners.insertUploads a channel banner image to YouTube. This method represents the first two steps in a three-step process to update the banner image for a channel:

- Call the channelBanners.insert method to upload the binary image data to YouTube. The image must have a 16:9 aspect ratio and be at least 2120x1192 pixels. - Extract the url property's value from the response that the API returns for step 1. - Call the channels.update method to update the channel's branding settings. Set the brandingSettings.image.bannerExternalUrl property's value to the URL obtained in step 2.

youtube.channelSections.deleteDeletes a channelSection.
youtube.channelSections.insertAdds a channelSection for the authenticated user's channel.
youtube.channelSections.listReturns channelSection resources that match the API request criteria.
youtube.channelSections.updateUpdate a channelSection.
youtube.channels.listReturns a collection of zero or more channel resources that match the request criteria.
youtube.channels.updateUpdates a channel's metadata.
youtube.guideCategories.listReturns a list of categories that can be associated with YouTube channels.
youtube.i18nLanguages.listReturns a list of supported languages.
youtube.i18nRegions.listReturns a list of supported regions.
youtube.liveBroadcasts.bindBinds a YouTube broadcast to a stream or removes an existing binding between a broadcast and a stream. A broadcast can only be bound to one video stream.
youtube.liveBroadcasts.controlControls the settings for a slate that can be displayed in the broadcast stream.
youtube.liveBroadcasts.deleteDeletes a broadcast.
youtube.liveBroadcasts.insertCreates a broadcast.
youtube.liveBroadcasts.listReturns a list of YouTube broadcasts that match the API request parameters.
youtube.liveBroadcasts.transitionChanges the status of a YouTube live broadcast and initiates any processes associated with the new status. For example, when you transition a broadcast's status to testing, YouTube starts to transmit video to that broadcast's monitor stream. Before calling this method, you should confirm that the value of the status.streamStatus property for the stream bound to your broadcast is active.
youtube.liveBroadcasts.updateUpdates a broadcast. For example, you could modify the broadcast settings defined in the liveBroadcast resource's contentDetails object.
youtube.liveStreams.deleteDeletes a video stream.
youtube.liveStreams.insertCreates a video stream. The stream enables you to send your video to YouTube, which can then broadcast the video to your audience.
youtube.liveStreams.listReturns a list of video streams that match the API request parameters.
youtube.liveStreams.updateUpdates a video stream. If the properties that you want to change cannot be updated, then you need to create a new stream with the proper settings.
youtube.playlistItems.deleteDeletes a playlist item.
youtube.playlistItems.insertAdds a resource to a playlist.
youtube.playlistItems.listReturns a collection of playlist items that match the API request parameters. You can retrieve all of the playlist items in a specified playlist or retrieve one or more playlist items by their unique IDs.
youtube.playlistItems.updateModifies a playlist item. For example, you could update the item's position in the playlist.
youtube.playlists.deleteDeletes a playlist.
youtube.playlists.insertCreates a playlist.
youtube.playlists.listReturns a collection of playlists that match the API request parameters. For example, you can retrieve all playlists that the authenticated user owns, or you can retrieve one or more playlists by their unique IDs.
youtube.playlists.updateModifies a playlist. For example, you could change a playlist's title, description, or privacy status.
youtube.search.listReturns a collection of search results that match the query parameters specified in the API request. By default, a search result set identifies matching video, channel, and playlist resources, but you can also configure queries to only retrieve a specific type of resource.
youtube.subscriptions.deleteDeletes a subscription.
youtube.subscriptions.insertAdds a subscription for the authenticated user's channel.
youtube.subscriptions.listReturns subscription resources that match the API request criteria.
youtube.thumbnails.setUploads a custom video thumbnail to YouTube and sets it for a video.
youtube.videoCategories.listReturns a list of categories that can be associated with YouTube videos.
youtube.videos.deleteDeletes a YouTube video.
youtube.videos.getRatingRetrieves the ratings that the authorized user gave to a list of specified videos.
youtube.videos.insertUploads a video to YouTube and optionally sets the video's metadata.
youtube.videos.listReturns a list of videos that match the API request parameters.
youtube.videos.rateAdd a like or dislike rating to a video or remove a rating from a video.
youtube.videos.updateUpdates a video's metadata.
youtube.watermarks.setUploads a watermark image to YouTube and sets it for a channel.
youtube.watermarks.unsetDeletes a watermark.

Buttons, Widgets, and Tools

The Buttons, Widgets, and Tools section describes other tools you can use to add YouTube functionality to your app or to test YouTube APIs. [6]

How To Use YouTube's API

To use YouTube's API, a developer must acquire a Developer ID - this is an additional property that is attached to the developer's YouTube account. The information that is available to developers is similar to the information that can be acquired by accessing YouTube's many RSS feeds. Since the integration of Google and YouTube it is possible to log into YouTube using an existing Google account. An easy to use tutorial can be found as a YouTube video. [7]
The API's have since been extended and are now compatible with many mobile operating platforms such as Android and iOS. Quite obviously the Android API's are more complete with the iOS resources somewhat lacking. A list of this API's available for both platforms are below:

Other YouTube API's (the traditional API's) include:
Analytics API's

Data API

Advantages

A great advantage of using YouTube's API's is that 3rd party companies are able to arrange pay per click coupled with advertising for your videos. This allows the video uploader to receive money for the work they have put into their videos. [8] YouTube API's also allow a tighter integration of the video service into a 3rd party website. This essentially means that the user does not need to click a link to go to the YouTube video. Instead, they are able to view the video in the same page that they are visiting. [9] Another advantage of using the YouTube APIs is that it is easier to select the specific data and videos to be stored on a 3rd party site. [10]

Disadvantages

During a period that included March 2006, API calls from Flash were disabled due to security concerns. These, however, have since been re-enabled. [11]
There are also problems currently (October 2014) with the orientation on Android devices. Even by adding the fullscreen to the AndroidManifest, it still does not load properly in the correct full screen orientation. [12]
YouTube also does not allow videos to run whilst the Android device is sleeping. This can be seen as an annoyance for some users. Particularly if the user is trying to use YouTube as a replacement music player. [13]
Quotas limit the activity of some users [14]
Overall, the YouTube API's help the user with certain pieces of code. If the code snippet is already present, there is no need for each user to recreate this code as it has been supplied by YouTube themselves. [15]

See also

Related Research Articles

A software development kit (SDK) is a collection of software development tools in one installable package. They facilitate the creation of applications by having a compiler, debugger and sometimes a software framework. They are normally specific to a hardware platform and operating system combination. To create applications with advanced functionalities such as advertisements, push notifications, etc; most application software developers use specific software development kits.

<span class="mw-page-title-main">Kodi (software)</span> Free software media player

Kodi is a free and open-source media player software application developed by the XBMC Foundation, a non-profit technology consortium. Kodi is available for multiple operating systems and hardware platforms, with a software 10-foot user interface for use with televisions and remote controls. It allows users to play and view most streaming media, such as videos, music, podcasts, and videos from the Internet, as well as all common digital media files from local and network storage media.

<span class="mw-page-title-main">Google Maps</span> Googles web mapping service (launched 2005)

Google Maps is a web mapping platform and consumer application offered by Google. It offers satellite imagery, aerial photography, street maps, 360° interactive panoramic views of streets, real-time traffic conditions, and route planning for traveling by foot, car, bike, air and public transportation. As of 2020, Google Maps was being used by over 1 billion people every month around the world.

<span class="mw-page-title-main">Google Analytics</span> Web analytics service from Google

Google Analytics is a web analytics service offered by Google that tracks and reports website traffic, currently as a platform inside the Google Marketing Platform brand. Google launched the service in November 2005 after acquiring Urchin.

<span class="mw-page-title-main">Android (operating system)</span> Mobile operating system

Android is a mobile operating system based on a modified version of the Linux kernel and other open source software, designed primarily for touchscreen mobile devices such as smartphones and tablets. Android is developed by a consortium of developers known as the Open Handset Alliance and commercially sponsored by Google. It was unveiled in November 2007, with the first commercial Android device, the HTC Dream, being launched in September 2008.

Google Play, also branded as the Google Play Store and formerly Android Market, is a digital distribution service operated and developed by Google. It serves as the official app store for certified devices running on the Android operating system and its derivatives as well as ChromeOS, allowing users to browse and download applications developed with the Android software development kit (SDK) and published through Google. Google Play has also served as a digital media store, offering games, music, books, movies, and television programs be. Content that has been purchased on Google Play Movies & TV and Google Play Books can be accessed on a web browser, and through the Android and iOS apps.

Google Cast is a proprietary protocol developed by Google for playing Internet-streamed audio/video content on a compatible consumer device. The protocol is used to initiate and control playback of content on digital media players, high-definition televisions, and home audio systems using a mobile device, personal computer, or smart speaker. The protocol was first launched on July 24, 2013, to support Google's first-generation Chromecast player. The Google Cast SDK was released on February 3, 2014, allowing third parties to modify their software to support the protocol. According to Google, over 20,000 Google Cast-ready apps were available as of May 2015. Support for Google Cast has since been integrated into subsequent devices, such as the Nexus Player and other Android TV devices, as well as soundbars, speakers, and later models of the Chromecast. Consumer devices that natively support the protocol are marketed as Chromecast built-in. As of October 2017, over 55 million Chromecasts and Chromecast built-in devices have been sold.

Google Play Services is a proprietary background service and API package produced by Google for Android devices. When it was introduced in 2012, it provided access to the Google+ APIs and OAuth 2.0. It expanded to cover a variety of Google services, allowing applications to communicate with the services through common means.

Firebase is a set of hosting services for any type of application. It offers NoSQL and real-time hosting of databases, content, social authentication, and notifications, or services, such as a real-time communication server.

<span class="mw-page-title-main">Google App Runtime for Chrome</span> Compatibility layer and sandboxing technology

Android Runtime for Chrome (ARC) is a compatibility layer and sandboxing technology for running Android applications on desktop and laptop computers in an isolated environment. It allows applications to be safely run from a web browser, independent of user operating system, at near-native speeds.

<span class="mw-page-title-main">Microsoft Garage</span> Programme within Microsoft

The Microsoft Garage is a Microsoft program that encourages employees to work on projects about which they are passionate, despite having no relation to their primary function within the company. Employees from all divisions of Microsoft are free to take part in Microsoft Garage activities and small-scale innovation projects. The Microsoft Garage is a global program with locations on the main campus in Redmond, Washington, and several others spread all over the world, and a website that launched in October 2014 to share experimental projects with customers.

<span class="mw-page-title-main">Android Cupcake</span> Third version of the Android operating system

Android Cupcake is the third version of Android developed by Google, a major platform release deployable to Android-powered handsets starting in April 2009, that is no longer supported. The release included new features for users and developers, as well as changes in the Android framework API. For developers, the Android 1.5 platform was available as a downloadable component for the Android SDK. Google ceased support for Android Cupcake on September 27, 2021.

Firebase Cloud Messaging (FCM), formerly known as Google Cloud Messaging (GCM), is a cross-platform cloud solution for messages and notifications for Android, iOS, and web applications, which as of June 2022 can be used at no cost. Firebase Cloud Messaging allows third-party application developers to send notifications or messages from servers hosted by FCM to users of the platform or end users.

LineageOS is an Android based operating system for smartphones, tablet computers, and set-top boxes, with mostly free and open-source software. It is the successor to Android distribution CyanogenMod, from which it was forked in December 2016 when Cyanogen Inc. announced it was discontinuing development and shut down the infrastructure behind the project. Since Cyanogen Inc. retained the rights to the Cyanogen name, the project rebranded its fork as LineageOS.

<span class="mw-page-title-main">Android Oreo</span> Eighth major version of the Android mobile operating system

Android Oreo is the eighth major release and the 15th version of the Android mobile operating system. It was first released as an alpha quality developer preview in March 2017 and released to the public on August 21, 2017.

Flutter is an open-source UI software development kit created by Google. It is used to develop cross platform applications for Android, iOS, Linux, macOS, Windows, Google Fuchsia, and the web from a single codebase.

iOS 14 Fourteenth major release of iOS, the mobile operating system developed by Apple Inc.

iOS 14 is the fourteenth major release of the iOS mobile operating system developed by Apple Inc. for their iPhone and iPod Touch lines. Announced at the company's Worldwide Developers Conference on June 22, 2020 as the successor to iOS 13, it was released to the public on September 16, 2020. It was succeeded by iOS 15 on September 20, 2021.

<span class="mw-page-title-main">Android 12</span> Twelfth major version of the Android mobile operating system family

Android 12 is the twelfth major release and 19th version of Android, the mobile operating system developed by the Open Handset Alliance led by Google. The first beta was released on May 18, 2021. Android 12 was released publicly on October 4, 2021, through Android Open Source Project (AOSP) and was released to supported Google Pixel devices on October 19, 2021.

Umar Javeed, Sukarma Thapar, Aaqib Javeed vs. Google LLC and Ors. is a 2019 court case in which Google and Google India Private Limited were accused of abuse of dominance in the Android operating system in India. The Competition Commission of India found that Google abused its dominant position by requiring device manufacturers wishing to pre-install apps to adhere to a compatibility standard on Android.

References

  1. "API Resources". YouTube API. Retrieved 7 October 2014.
  2. "Players and Player APIs" . Retrieved 28 November 2014.
  3. Francis, William. "Using Google's API In Your Android Apps". TechRepublic UK. Retrieved 24 October 2014.
  4. "YouTube Direct Lite for iOS". GitHub. GitHub Inc. Retrieved 24 October 2014.
  5. "Data and Analytics APIs" . Retrieved 28 November 2014.
  6. "Buttons, Widgets, and Tools" . Retrieved 28 November 2014.
  7. "Obtaining a simple API key for use with the YouTube API". ZixMp4. Google Developers. Retrieved 25 October 2014.
  8. Litt, Michael. "How To: Benefit From Using YouTube". VidYard. VidYard. Retrieved 24 October 2014.
  9. Wagner, Janet. "The Increasing Importance of APIs In Web Development". Tuts+. Tuts+. Retrieved 24 October 2014.
  10. Arno, Christian (16 October 2014). "The Advantages of Social Media APIs". Search Engine Journal. Search Engine Journal. Retrieved 27 October 2014.
  11. "First time using YouTube's APi" . Retrieved 2007-03-17.
  12. "what the advantage or disadvantages if i used youtube-API or present the video in a webview". StackOverflow. StackOverflow. Retrieved 24 October 2014.
  13. bh6712121. "Why Steam Music Won't Replace My Music Player". YouTube. bh6712121. Archived from the original on 2015-07-20. Retrieved 25 October 2014.
  14. "YouTube Data API (V3) - Quota Calculator".
  15. Purifier, HTML. "Embedding YouTube Videos". HTML Purifier. HTML Purifier. Retrieved 27 October 2014.