banner



How To Get Songs For Youtube Videos

Imagine that your favorite vocaliser releases a new song on YouTube, you mind to the song and click a "similar" or leave your reviews, or you go to your favorite channel to see if there are some new releases. In this web log, I'll talk about how to get YouTube videos' / channels' information with YouTube Data API with Python:

  • What is YouTube Information API?
  • What could we get by YouTube Data API?
  • How to accomplish the request by Python?

What is YouTube Data API?

The YouTube Data API is an API that provides access to YouTube data, such equally videos, playlists, and channels. It lets you lot incorporate functions normally executed on the YouTube website into your website or application.

What could we get by YouTube Data API?

In this section, I'll take the video of the last weblog (Jay Chou Mojito) as an example and talk nigh how to become its ID, its statistics data, its comments, etc.

Get a video ID & channel ID with a query

With the given query ("Jay Chou Mojito"), we can search the video with search. A search event contains data about a YouTube video, channel, or playlist that matches the search parameters specified in an API request. While a search issue points to a uniquely identifiable resource, similar a video, information technology does not have its persistent data. The API supports the list method for search, it returns a collection of search results that match the query parameters specified in the API asking. By default, a search result set identifies matching video, channel, and playlist resources, but you lot can also configure queries to only think a specific type of resources.

HTTP request:

                          Become https://www.googleapis.com/youtube/v3/search                      

Y'all'll find all parameters hither.

Case

Search the video with "Jay Chou Mojito" query:

                          GET https://www.googleapis.com/youtube/v3/search?part=snippet&q=Jay%20Chou%20Mojito&cardinal=[YOUR_API_KEY]                      

where

  • the part(string) parameter specifies a comma-separated listing of one or more search resources properties that the API response will include. Set the parameter value to snippet.
  • the q(string) parameter specifies the query term to search for.

and then we can get the consequence in "json" format:

20200704-search-1

20200704-search-2

20200704-search-3

We got 103131 results in total, what nosotros need is only the official video which is released by "周杰倫 Jay Chou", then nosotros take the videoId(-biOGdYiF-I) and channelId(UC8CU5nVhCQIdAGrFFp4loOQ) of the first result.

Get a video'due south statistics data with a video ID

With the known videoId, we can check its statistics data with videos. The list method returns a list of videos that match the API request parameters.

HTTP request:

                          GET https://world wide web.googleapis.com/youtube/v3/videos                      

Yous'll find all parameters hither.

Example

Retrieve information about the video with videoId.

                          GET https://www.googleapis.com/youtube/v3/videos?part=statistics&id=-biOGdYiF-I&key=[YOUR_API_KEY]                      

where

  • the office parameter specifies a comma-separated list of ane or more video resource properties that the API response volition include.
  • the id parameter specifies a comma-separated list of the YouTube video ID(due south) for the resources(southward) that are being retrieved. In a video resource, the id property specifies the video's ID.

then we can go the result in "json" format:

20200704-statistics

At that place are 16295328 views since the release, 175632 likes, 7805 dislikes and 16676 comments.

With the known videoId, nosotros tin can check its comments with commentThread. A commentThread resource contains information about a YouTube annotate thread, which comprises a superlative-level comment and replies, if any exist, to that comment. A commentThread resource can represent comments about either a video or a channel.

Both the top-level comment and the replies are really comment resources nested inside the commentThread resources. The commentThread resource does not necessarily incorporate all replies to a comment, and y'all demand to utilize the comments.listing method if you lot want to remember all replies for a particular comment. Also notation that some comments do non have replies.

The API supports the list method for commentThreads resources.

HTTP request:

                          Get https://www.googleapis.com/youtube/v3/commentThreads                      

Yous'll find all parameters here.

Instance

Retrieve all comment threads associated with a particular video.

                          GET https://www.googleapis.com/youtube/v3/commentThreads?part=snippet&videoId=-biOGdYiF-I&key=[YOUR_API_KEY]                      

where

  • the role parameter specifies a comma-separated list of one or more commentThread resource backdrop that the API response will include.
  • the videoId parameter instructs the API to render comment threads associated with the specified video ID.

then nosotros tin go the result in "json" format:

20200704-comments-1

20200704-comments-2

20200704-comments-3

Get a aqueduct's information with channel ID

With the known channelId, we tin can cheque its statistics data with channel. A aqueduct resource contains information virtually a YouTube channel. We could apply list method to returns a collection of zero or more channel resources that friction match the request criteria.

HTTP request:

                          GET https://world wide web.googleapis.com/youtube/v3/channels                      

You'll discover all parameters here.

Case

Retrieve channel data for the GoogleDevelopers YouTube channel. It uses the id request parameter to identify the channel by its YouTube channel ID.

                          GET https://www.googleapis.com/youtube/v3/channels?part=snippet%2Cstatistics&id=UC8CU5nVhCQIdAGrFFp4loOQ&key=[YOUR_API_KEY]                      

where

  • the part parameter specifies a comma-separated list of one or more than channel resource properties that the API response will include.
  • the id parameter specifies a comma-separated listing of the YouTube channel ID(due south) for the resource(s) that are being retrieved. In a aqueduct resource, the id holding specifies the channel'due south YouTube aqueduct ID.

then we can get the effect in "json" format:

20200704-channel-1

20200704-channel-2

According to the results, nosotros go not only the title and the clarification of the aqueduct, just also its statistics information like views count and subscriber count.

Get a channel's playlist

A playlist resource represents a YouTube playlist. A playlist is a collection of videos that can be viewed sequentially and shared with other users. By default, playlists are publicly visible to other users, simply playlists can exist public or private.

The API supports the list method for playlists resource, which returns a collection of playlists that match the API request parameters. For case, y'all can retrieve all playlists that the authenticated user owns, or you can remember ane or more playlists by their unique IDs.

HTTP request:

                          Become https://www.googleapis.com/youtube/v3/playlists                      

You'll find all parameters here.

Example

Retrieve playlists owned past the YouTube aqueduct that the request'southward channelId parameter identifies.

                          Get https://www.googleapis.com/youtube/v3/playlists?office=snippet&channelId=UC8CU5nVhCQIdAGrFFp4loOQ&key=[YOUR_API_KEY]                      

where

  • the part parameter specifies a comma-separated list of one or more playlist resource properties that the API response will include.
  • the channelId's value indicates that the API should just return the specified aqueduct's playlists.

20200704-playlists-1

20200704-playlists-2

20200704-playlists-3

According to the results, we get data like author, title, description, tags, and timeCreated.

How to accomplish the request by Python?

Google creates a Python SDK for Python users, we will apply it in this section.

Prerequisites

  • Python 2.7 or Python iii.5+
  • The pip package direction tool
  • The Google APIs Client Library for Python
    pip install --upgrade google-api-python-client
  • The google-auth-oauthlib and google-auth-httplib2 libraries for user authorization
    pip install --upgrade google-auth-oauthlib google-auth-httplib2

Get a video ID & aqueduct ID with a query

                          # -*- coding: utf-eight -*- # Sample Python lawmaking for youtube.search.list                            import              os              import              google_auth_oauthlib.flow              import              googleapiclient.discovery              import              googleapiclient.errors              scopes              =              [              "https://world wide web.googleapis.com/auth/youtube.force-ssl"              ]              def              chief              ():              # Disable OAuthlib's HTTPS verification when running locally.                            # *Do Non* leave this choice enabled in product.                            os              .              environ              [              "OAUTHLIB_INSECURE_TRANSPORT"              ]              =              "ane"              api_service_name              =              "youtube"              api_version              =              "v3"              client_secrets_file              =              "YOUR_CLIENT_SECRET_FILE.json"              # Get credentials and create an API client                            period              =              google_auth_oauthlib              .              menses              .              InstalledAppFlow              .              from_client_secrets_file              (              client_secrets_file              ,              scopes              )              credentials              =              flow              .              run_console              ()              youtube              =              googleapiclient              .              discovery              .              build              (              api_service_name              ,              api_version              ,              credentials              =              credentials              )              request              =              youtube              .              search              ().              list              (              part              =              "snippet"              ,              q              =              "Jay Chou Mojito"              )              response              =              request              .              execute              ()              print              (              response              )              if              __name__              ==              "__main__"              :              chief              ()                      
  • google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file() creates a :class:Catamenia instance from a Google client secrets file.
  • googleapiclient.discovery.build() construct a Resource object for interacting with an API. The serviceName and version are the names of the Discovery service.
  • youtube.search().listing() calls the search.list method to retrieve results matching the specified query term.

Get a video'southward statistics data with a video ID

                          # -*- coding: utf-8 -*- # Sample Python code for youtube.videos.list                            import              os              import              google_auth_oauthlib.menses              import              googleapiclient.discovery              import              googleapiclient.errors              scopes              =              [              "https://world wide web.googleapis.com/auth/youtube.readonly"              ]              def              chief              ():              # Disable OAuthlib's HTTPS verification when running locally.                            # *DO NOT* go out this pick enabled in product.                            bone              .              environ              [              "OAUTHLIB_INSECURE_TRANSPORT"              ]              =              "1"              api_service_name              =              "youtube"              api_version              =              "v3"              client_secrets_file              =              "YOUR_CLIENT_SECRET_FILE.json"              # Become credentials and create an API customer                            catamenia              =              google_auth_oauthlib              .              flow              .              InstalledAppFlow              .              from_client_secrets_file              (              client_secrets_file              ,              scopes              )              credentials              =              catamenia              .              run_console              ()              youtube              =              googleapiclient              .              discovery              .              build              (              api_service_name              ,              api_version              ,              credentials              =              credentials              )              request              =              youtube              .              videos              ().              listing              (              part              =              "statistics"              ,              id              =              "-biOGdYiF-I"              )              response              =              request              .              execute              ()              print              (              response              )              if              __name__              ==              "__main__"              :              main              ()                      
  • google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file() creates a :course:Menses example from a Google client secrets file.
  • googleapiclient.discovery.build() construct a Resource object for interacting with an API. The serviceName and version are the names of the Discovery service.
  • youtube.videos().listing() calls the API'due south videos.list method to retrieve the video resource.
                          # -*- coding: utf-eight -*- # Sample Python code for youtube.commentThreads.listing                            import              os              import              googleapiclient.discovery              def              main              ():              # Disable OAuthlib'due south HTTPS verification when running locally.                            # *DO Non* leave this choice enabled in production.                            os              .              environ              [              "OAUTHLIB_INSECURE_TRANSPORT"              ]              =              "1"              api_service_name              =              "youtube"              api_version              =              "v3"              DEVELOPER_KEY              =              "YOUR_API_KEY"              youtube              =              googleapiclient              .              discovery              .              build              (              api_service_name              ,              api_version              ,              developerKey              =              DEVELOPER_KEY              )              request              =              youtube              .              commentThreads              ().              listing              (              function              =              "snippet"              ,              videoId              =              "-biOGdYiF-I"              )              response              =              request              .              execute              ()              print              (              response              )              if              __name__              ==              "__main__"              :              chief              ()                      
  • googleapiclient.discovery.build() construct a Resource object for interacting with an API. The serviceName and version are the names of the Discovery service.
  • youtube.commentThreads().listing() calls the API's commentThreads.list method to list the existing comments.

Get a aqueduct's data with channel ID

                          # -*- coding: utf-viii -*- # Sample Python code for youtube.channels.listing                            import              os              import              google_auth_oauthlib.period              import              googleapiclient.discovery              import              googleapiclient.errors              scopes              =              [              "https://www.googleapis.com/auth/youtube.readonly"              ]              def              master              ():              # Disable OAuthlib'southward HTTPS verification when running locally.                            # *Practice Not* leave this option enabled in production.                            os              .              environ              [              "OAUTHLIB_INSECURE_TRANSPORT"              ]              =              "1"              api_service_name              =              "youtube"              api_version              =              "v3"              client_secrets_file              =              "YOUR_CLIENT_SECRET_FILE.json"              # Get credentials and create an API client                            catamenia              =              google_auth_oauthlib              .              period              .              InstalledAppFlow              .              from_client_secrets_file              (              client_secrets_file              ,              scopes              )              credentials              =              flow              .              run_console              ()              youtube              =              googleapiclient              .              discovery              .              build              (              api_service_name              ,              api_version              ,              credentials              =              credentials              )              request              =              youtube              .              channels              ().              list              (              part              =              "snippet,statistics"              ,              id              =              "UC8CU5nVhCQIdAGrFFp4loOQ"              )              response              =              request              .              execute              ()              impress              (              response              )              if              __name__              ==              "__main__"              :              primary              ()                      
  • google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file() creates a :form:Catamenia case from a Google customer secrets file.
  • googleapiclient.discovery.build() construct a Resources object for interacting with an API. The serviceName and version are the names of the Discovery service.
  • youtube.channels().list() calls the API's channels.list method to recollect channel data for the GoogleDevelopers YouTube channel.

Get a channel'south playlist

                          # -*- coding: utf-eight -*- # Sample Python code for youtube.playlists.list                            import              os              import              google_auth_oauthlib.flow              import              googleapiclient.discovery              import              googleapiclient.errors              scopes              =              [              "https://www.googleapis.com/auth/youtube.readonly"              ]              def              main              ():              # Disable OAuthlib's HTTPS verification when running locally.                            # *Do NOT* go out this selection enabled in product.                            os              .              environ              [              "OAUTHLIB_INSECURE_TRANSPORT"              ]              =              "i"              api_service_name              =              "youtube"              api_version              =              "v3"              client_secrets_file              =              "YOUR_CLIENT_SECRET_FILE.json"              # Get credentials and create an API client                            catamenia              =              google_auth_oauthlib              .              menses              .              InstalledAppFlow              .              from_client_secrets_file              (              client_secrets_file              ,              scopes              )              credentials              =              flow              .              run_console              ()              youtube              =              googleapiclient              .              discovery              .              build              (              api_service_name              ,              api_version              ,              credentials              =              credentials              )              request              =              youtube              .              playlists              ().              listing              (              part              =              "snippet"              ,              channelId              =              "UC8CU5nVhCQIdAGrFFp4loOQ"              )              response              =              request              .              execute              ()              print              (              response              )              if              __name__              ==              "__main__"              :              main              ()                      
  • google_auth_oauthlib.flow.InstalledAppFlow.from_client_secrets_file() creates a :class:Menses instance from a Google client secrets file.
  • googleapiclient.discovery.build() construct a Resource object for interacting with an API. The serviceName and version are the names of the Discovery service.
  • youtube.playlists().list() calls the API'southward playlists.list method to retrieve playlists owned by the YouTube aqueduct that the request's channelId parameter identifies.

Reference

  • "YouTube Data API", developers.google.com. [Online]. Available: https://developers.google.com/youtube/v3/docs
  • "Code Samples / Running lawmaking samples locally / Python", developers.google.com. [Online]. Available: https://developers.google.com/explorer-assist/guides/code_samples#python
  • "youtube / api-samples", github.com. [Online]. Available: https://github.com/youtube/api-samples/tree/master/python
  • geralt, "Hand touch YouTube icon", pixabay.com. [Online]. Bachelor: https://pixabay.com/illustrations/hand-touch-you-tube-y'all-tube-icon-589488/
  • slightly_different, "youtube logo graphic red", pixabay.com. [Online]. Bachelor: https://pixabay.com/vectors/youtube-logo-graphic-reddish-1837872/

Source: https://jingwen-z.github.io/how-to-get-a-youtube-video-information-with-youtube-data-api-by-python/

Posted by: gallowaycusese.blogspot.com

0 Response to "How To Get Songs For Youtube Videos"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel