Age-restricted videos - Is "media:rating" sufficient? - youtube

I'm using Youtube's API to determine whether a video has been age-restricted. I've read that looking at the value of the media:rating tag will do just that.
However, when testing it out with Battlefield 3: End Game Launch Trailer, a video which is preceded by a Content Warning, I see that there is no "media:rating" tag in the metadata.
Is simply checking media:rating insufficient when determining the video's age restriction? Is there another tag to check? Or am I missing something else entirely?

That's the only exposed attribute in v2 of the API that holds information about restrictions. I've periodically seen videos like this, where they are age-restricted but the media:rating tag is missing (I'm guessing it's likely that the public front-end uses a different, unexposed attribute for determining how it restricts the videos). You might want to report the video so the developers can look into why it doesn't have that metadata.
Related link:
https://groups.google.com/forum/?fromgroups=#!topic/youtube-api-gdata/4Bzbr_uLkdA

Related

Video Embeddable On Some Sites But Not Others

So I'm using the YouTube API to search for videos. With my search I'm including the following parameters: type = video, videoEmbeddable = true, videoSyndicated = true. But results that I'm getting can't be played on my site still. An example call I'm doing would be
https://www.googleapis.com/youtube/v3/search?part=snippet&q=Yellow+Claw&maxResults=25&type=video&videoSyndicated=true&videoEmbeddable=true&videoCategoryId=10&key=
But the results still give me an error when embedding stating that
This video contains content from ____. It is restricted from playback from certain sites or applications.
The part that really throws me off is that I've seen the exact same video embedded on another site.
Is there some sort of setting that I don't know about that needs to be changed? Is this call incorrect and is there something that I'm missing?
If you check this blog, it may help you identify which part of your code need to be fix or some changes.
There were 5 specified areas that you need to check, mainly
yt:accessControl
Geo Restrictions
yt:state
Rentals
Other Restrictions not Currently Exposed via the API
Check your codes base the restriction set by the YouTube API. For further reference, check this SO post.

How can we figure out that the YouTube video is monetized using youtube/v3/videos?id=<> call?

Given a YouTube Video id, and using youtube/v3/videos?id=<> API call, how can we find that the video is monetized? Which param in response signifies that?
e.g. https://www.youtube.com/watch?v=E1iqGiX0lSg
Thanks,
Nimish
There is no way to determine whether or not a video is monetized with a call to the YouTube Data API (which appears to be what you mean by youtube/v3/videos?id).
Instead, you'll need the YouTube Content ID API. Keep in mind that you'll have to be a partner of the CMS, and have the authentication of the CMS, to get visibility to a video's policy this way. You'll probably want to determine a video's policyId, and then use the policies.list resource to determine the type of policy (I've never attempted this myself, though this is how I would start).
See this question for more info.

Is it possible to get the YouTube author name for a video using the v3 api?

So I'm working on switching to using the v3 version of the YouTube api (which is so much better it's like a completely different product), but I'm either missing something or it is ...
Being able to fetch an arbitrary list of videos, and their details, in one call is going to make life significantly better, but in the videos list method, the the video details "snippet" contains the "channelId", not the "author".
I've spent quite a bit of time looking through the documentation, but can't find any way of getting from a channelId to the human readable author name.
How am I expected to map a video to an author?
It's not possible to get back a display name (either legacy YouTube name or Google+ name) for a channel as part of the video.snippet response. You need to take the channelId and perform a channels.list(id=channelId1,channelId2,...,part=snippet) operation to get that information. The good part is that you can pass in up to 50 channel ids in a single call.
This sort of separation of information into different resources with ids effectively serving as keys linking the resources was a deliberate decision. The engineering team is aware that it will require developers to make an additional API call, but they're in favor of that design.
At the same time, the API is still in an experimental release, and if you have any feedback about using the API while doing real-world development, feel free to open a feature request in the issue tracker. If enough people give feedback about a certain aspect of the API, that could factor in to the final revision's design.
The accepted answer may have been correct at the time of writing, but as of 2/2018 the snippet part now includes a channelTitle property.

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.

YouTube API: videoEntry context in playlist

Is it possible to find the context of a video in respect to any playlist that it is included in? I would like to be able to check if the videoEntry is included in a playlist and, if so, figure out the next video in the playlist.
Flickr has a lot of great photo context methods, I hope YouTube does too, I just can't find anything on it.
Well, obviously you want to know the VideoId of the video in question first, right? So say it's "4eUibFQKJqI" and it's in a playlist whose Id is "6C0464B5CC81A607" (You can easily get those Ids from your 'My Account' section in YouTube).
If I get the feed for that playlist, then the resulting xml file gives you all the information you need to check if that Video is present, and the order that you have set in 'My Account' is preserved.
So, you have two ways of analysing the results that YouTube sends you. One is to make a request to that playlist address and parsing the results using Linq-to-Sql, if you use Asp.Net, for example. Whatever language you use, it will have Xml-parsing capabilities, so it's just a case of iterating through the entries in the feed.
If you use a library for your language, it may well have a specific method to determine whether a given video is in a given playlist, but if it doesn't, it's pretty easy to query the raw xml file and get that information, as described above.
Hope that helps - it's hard to tell from your question what level you're at with this stuff... Anyway, it's all at the Developers' Guide.
http://gdata.youtube.com/feeds/api/playlists/PLAYLIST_ID?v=2
from http://code.google.com/apis/youtube/2.0/reference.html

Resources