How to get all videos of Channel from Youtube API with statistics - youtube-api

With the below URL I am able to get the channel videos but how to get video statistics (viewCount, likeCount etc) along with it?
https://www.googleapis.com/youtube/v3/search?key={MY_API_KEY}&channelId=UCz22l7kbce-uFJAoaZqxD1A&part=snippet,id&order=date&maxResults=20

According to https://developers.google.com/youtube/v3/docs/videos/list#usage,
The statistics response will contains the things you want.

I don't know if this is still useful to you since it's been so long, but it may help someone else. Just add statistics to the part. See below:
https://www.googleapis.com/youtube/v3/search?key={MY_API_KEY}&channelId=UCz22l7kbce-uFJAoaZqxD1A&part=snippet,id,statistics&order=date&maxResults=20

Related

YouTube API: Check if Someone Else's Video is Monetized or Not

There is a website called: TubeSift
This tool determines whether a video is "monetized" or not.
My simple question is...
Is there a way to determine if a specific YouTube video is monetized (can show in-stream ads) via some YouTube API?
If yes, which YouTube API?
If no, how then might TubeSift be determining this? Scraping the response?
Important distinction: this would be a video that you DON'T have authentication or credentials to manage - ie: it's someone else's video.
Similar questions asking slightly different things
youtube api to get channel monetization status?
Disclaimer
I realize this question seems off-topic because it doesn't have a code example but YouTube's How to Get Help says to basically ask questions here on StackOverflow for help.
We support the YouTube Data API on Stack Overflow. Google engineers
monitor and answer questions with the youtube-api, youtube-data-api,
and youtube-v3-api tags.
There's really nowhere else to ask.
Youtube provides API to YouTube content partners. I also checked the tubetarget and used scraping also but scraping is very slow as compared to the tubetarget
See this page to get enrolled.
According to youtube: When using delegation in the YouTube Data API, the onBehalfOfContentOwner parameter is always required. The parameter's value is an ID that uniquely identifies the content owner. You can retrieve the ID programmatically by calling the YouTube Content ID API's contentOwners.list method.
Detailed description here
YouTube Partner Program overview, application checklist, & FAQs
Also, check this
YouTube Partner Program policies
Please let me know if you are able to get Content Id API
In my opinion, i think if the video is greater than 10 minutes, therefore that video is being monetized, i read somewhere before that a video needs to have at least 10 minutes in order to be monetized, and obviously we can get the video duration via the API.
The json key is:
+"contentDetails": {#213 ▼
+"duration": "PT4M21S"
The time is formatted as an ISO 8601 string. PT stands for Time Duration, 4M is 4 minutes, and 13S is 13 seconds.
But the way Tubesift does it is just an intelligent guess or maybe some randomizing the "monetized" tagged of a video.
Hope that helps.

Youtube Data API v3: Sort by date not working

The sorting is not working as expected since a few hours.
https://www.googleapis.com/youtube/v3/search?order=date&part=snippet&channelId=UC_x5XG1OV2P6uZZ5FSM9Ttw&key=YOUR_API_KEY
Can be tried in the API explorer (Execute without OAuth) as well.
https://developers.google.com/apis-explorer/#p/youtube/v3/youtube.search.list?part=snippet&channelId=UC_x5XG1OV2P6uZZ5FSM9Ttw&order=date
date: Resources are sorted in reverse chronological order based on the date they were created.
https://developers.google.com/youtube/v3/docs/search/list
What is going wrong?
In case you are looking to get the latest videos of a channel:
Get the channels upload playlist from Channels
Get the latest videos in the channels upload playlist from PlaylistItems
Alternatively, you can use the channels RSS feed:
https://www.youtube.com/feeds/videos.xml?channel_id={ChannelId}
https://www.youtube.com/feeds/videos.xml?user={User}
This does not replace the full search sorted by date function however.
Thanks YouTube for making me work on a Sunday, all I wanted was to watch the latest videos from my favorite channels. At least I don't have to wait for a fix anymore, good luck to those less lucky!
Reports in Google's forum were commented by a Google employee:
https://support.google.com/youtube/thread/2494861?msgid=2520468
YouTube is aware the search/sorting functions aren't working as expected – this is temporary and part of our efforts to better respond, review and remove graphic, violative content from YouTube. Thanks for your patience while we work through this. Will update this thread when these features are working normally again, feel free to subscribe for updates.
Bug reports for this include:
https://issuetracker.google.com/issues/128673031
https://issuetracker.google.com/issues/128673552
Both have an official comment from Google:
Thank you all for bringing this up here. These specific filters have been currently disabled on both YouTube.com and through the APIs. We should have updates on this soon. Thanks again.
Not sure how credible that is:
Just confirming that this is only temporary, and related to YouTube's efforts to better respond, review and remove graphic, violative content from YouTube. Thanks for your patience while we work through this.
https://www.reddit.com/r/youtube/comments/b1plj5/sort_by_upload_date_not_working/eiojtjh/

Get Cards for Videos from Youtube APIs

I'm trying to get a list of all cards associated with a video id. I've looked at the different Youtube APIs, but no success.
example of cards in a video
Does anyone have an idea how to do this?
Thanks
This is currently not supported by Youtube API. You can find the supported methods by Youtube API in this reference list.
Disclaimer - this is only a partial answer.
It is possible to get card stats for a given channel through the Reporting API.
To do so, you need to create a reporting job https://developers.google.com/youtube/reporting/v1/reports/channel_reports#video-cards
This will give you basic stats (card_id included) for every card of every video for one channel during the specified time interval. At this stage, we know that there are cards for a given video, we know what type of cards these are, and we have some basic stats regarding their performance. We still don't know what is behind that card.
So the follow up question is: how to query youtube APIs with a card_id to retrieve more detail information about that card?
If someone knows this, then we have a way of getting card infos for any video.

Display Youtube channel

I'm looking for the best way to display a list of videos from a specific Youtube channel. Is it correct to parse the html data from the URL, or Apple won't approuve it? I also tried to use a UIWebView, but I can't get only the videos of the channel.
Any help is welcome
Parsing the html files seems like a really complicated and bad idea. Try if you can find something in YouTube's API.

Youtube API 2.0 Checking if a video is age restricted

I would like to check and see if a youtube video is age restricted. There are not many videos that are, but some are. I have been digging around in the youtube api documents and on the internet, but can't seem to find a way to detect this.
I am using the Youtube API V2 and only looking for one video at a time.
To check whether a video is (age) restricted in a given region, you can take a look at the media:rating attribute of the video entry, which is documented at
https://developers.google.com/youtube/2.0/reference#youtube_data_api_tag_media:rating
If you want to do a search and filter out videos that are age restricted, you can use the safeSearch=strict parameter:
https://developers.google.com/youtube/2.0/reference#safeSearchsp
I agree to Greg Schechter. The actual question was like if we have a video id (eg: In the link http://www.youtube.com/watch?v=RyDY0hiMZy8 the video id is RyDY0hiMZy8), how can we get the age restriction details based on that?
There is an API provided by Youtube to get the details based on the video id. For the above example the API link is:
http://gdata.youtube.com/feeds/api/videos/RyDY0hiMZy8?v=2&alt=json
But there is no information about the age restriction in the response.
Update on the above post:
In the API response from http://gdata.youtube.com/feeds/api/videos/tA4wytG3uh0?v=2&alt=json
we have a media$rating content coming and the data coming there can be compared with the rules mentioned in the link https://developers.google.com/youtube/2.0/reference#youtube_data_api_tag_media:rating
For non restricted videos, the media$rating value is not coming in the response. eg: in the link http://gdata.youtube.com/feeds/api/videos/RyDY0hiMZy8?v=2&alt=json
Any updates are welcome.
Age gating is not supported for embedded playbacks; so it's not something that is returned in the YouTube data api.
You can un-restrict those videos by following this link:
https://www.quora.com/How-do-you-change-the-settings-of-the-the-age-restrictrincts-on-my-YouTube-videos/answer/Doyle-Lorraine
Then your iframes should be back to normal.

Resources