Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I use the Youtube API to check if a video is embeddable?

Does anyone know how to check if a Youtube video is embeddable using the Youtube API? I've tried using this URL:

http://gdata.youtube.com/feeds/api/videos/47z7i79NuK8

but the response I get, pasted below, doesn't seem to have a field for embeddable?

entry: 
  rating: 
    rel: http://schemas.google.com/g/2005#overall
    max: "5"
    min: "1"
    average: "4.744681"
    numRaters: "94"
  group: 
    duration: 
      seconds: "47"
    player: 
      url: http://www.youtube.com/watch?v=47z7i79NuK8&feature=youtube_gdata_player
    category: Entertainment
    title: "Sesame Street: P is For Princess available everywhere on DVD!"
    thumbnail: 
    - time: "00:00:23.500"
      url: http://i.ytimg.com/vi/47z7i79NuK8/2.jpg
      height: "90"
      width: "120"
    - time: "00:00:11.750"
      url: http://i.ytimg.com/vi/47z7i79NuK8/1.jpg
      height: "90"
      width: "120"
    - time: "00:00:35.250"
      url: http://i.ytimg.com/vi/47z7i79NuK8/3.jpg
      height: "90"
      width: "120"
    - time: "00:00:23.500"
      url: http://i.ytimg.com/vi/47z7i79NuK8/0.jpg
      height: "240"
      width: "320"
    content: 
      duration: "47"
      medium: video
      yt:format: "5"
      isDefault: "true"
      url: http://www.youtube.com/v/47z7i79NuK8?f=videos&app=youtube_gdata
      expression: full
      type: application/x-shockwave-flash
    description: |-
      "Once upon a time on Sesame Street, there lived a fairy-in-training named Abby Cadabby, and she loved playing princess with friends like Rosita. But what happens when a misguided Prince (actor Paul Rudd) tries to rescue them? Pretending and the Letter P are the focus of this enchanting title, which also features fun with Natalie Portman and Elmo in "The Princess and The Elephant." This DVD also includes two bonus episodes of Sesame Street's new animated show, Abby's Flying Fairy School."

      www.sesamestreet.org/princess
    keywords: sesame street, muppets, princess, dvd, abby, abby's flying fairy school
  control: 
    state: Syndication of this video was restricted by its owner.
  category: 
  - term: http://gdata.youtube.com/schemas/2007#video
    scheme: http://schemas.google.com/g/2005#kind
  - label: Entertainment
    term: Entertainment
    scheme: http://gdata.youtube.com/schemas/2007/categories.cat
  - term: sesame street
    scheme: http://gdata.youtube.com/schemas/2007/keywords.cat
  - term: muppets
    scheme: http://gdata.youtube.com/schemas/2007/keywords.cat
  - term: princess
    scheme: http://gdata.youtube.com/schemas/2007/keywords.cat
  - term: dvd
    scheme: http://gdata.youtube.com/schemas/2007/keywords.cat
  - term: abby
    scheme: http://gdata.youtube.com/schemas/2007/keywords.cat
  - term: abby's flying fairy school
    scheme: http://gdata.youtube.com/schemas/2007/keywords.cat
  comments: 
    feedLink: 
      href: http://gdata.youtube.com/feeds/api/videos/47z7i79NuK8/comments
      countHint: "80"
  author: 
    name: SesameStreet
    uri: http://gdata.youtube.com/feeds/api/users/sesamestreet
  title: "Sesame Street: P is For Princess available everywhere on DVD!"
  statistics: 
    favoriteCount: "43"
    viewCount: "6003"
  published: "2010-10-08T19:18:09.000Z"
  xmlns:yt: http://gdata.youtube.com/schemas/2007
  id: http://gdata.youtube.com/feeds/api/videos/47z7i79NuK8
  xmlns:gd: http://schemas.google.com/g/2005
  content: |-
    "Once upon a time on Sesame Street, there lived a fairy-in-training named Abby Cadabby, and she loved playing princess with friends like Rosita. But what happens when a misguided Prince (actor Paul Rudd) tries to rescue them? Pretending and the Letter P are the focus of this enchanting title, which also features fun with Natalie Portman and Elmo in "The Princess and The Elephant." This DVD also includes two bonus episodes of Sesame Street's new animated show, Abby's Flying Fairy School."

    www.sesamestreet.org/princess
  link: 
  - href: http://www.youtube.com/watch?v=47z7i79NuK8&feature=youtube_gdata
    rel: alternate
    type: text/html
  - href: http://gdata.youtube.com/feeds/api/videos/47z7i79NuK8/related
    rel: http://gdata.youtube.com/schemas/2007#video.related
    type: application/atom+xml
  - href: http://gdata.youtube.com/feeds/api/videos/47z7i79NuK8
    rel: self
    type: application/atom+xml
  xmlns:media: http://search.yahoo.com/mrss/
  updated: "2010-10-10T06:36:39.000Z"
  xmlns:app: http://purl.org/atom/app#
  xmlns: http://www.w3.org/2005/Atom
like image 319
ben Avatar asked Oct 10 '10 07:10

ben


People also ask

How do I know if my YouTube video is embeddable?

Find a video you like on YouTube, then click the Share button to see whether the embed functionality has been enabled. Do not alter that code when displaying videos on your practice website. Show the video non-commercially. Credit the creator of the video.

Does YouTube have an API for their videos?

The API provides the ability to retrieve feeds related to videos, users, and playlists. It also provides the ability to manipulate these feeds, such as creating new playlists, adding videos as favorites, and sending messsages. The API is also able to upload videos.


2 Answers

As of the YouTube V3 API, there is an embeddable field in the status part.

E.g. https://www.googleapis.com/youtube/v3/videos?id=6CQEZ_kas0I&key=[yourkey]&part=snippet,contentDetails,status

"status": {
    "uploadStatus": "processed",
    "privacyStatus": "public",
    "license": "youtube",
    "embeddable": true,
    "publicStatsViewable": true
}
like image 164
maknz Avatar answered Oct 23 '22 07:10

maknz


Looking at the YouTube API reference, it appears you have a couple choices:

Specify the "FORMAT" parameter when searching for a clip:

The format parameter specifies that videos must be available in a particular video format. Your request can specify any of the following formats:

5 - HTTP URL to the embeddable player (SWF) for this video. This format is not available for a video that is not embeddable. Developers commonly add &format=5 to their queries to restrict results to videos that can be embedded on their sites.

Or reference the yt:accessControl element:

The <yt:accessControl> tag indicates whether users are allowed to rate a video, add comments about a video, rate comments about the video, add a video response to the video, or embed the video on third-party websites. Another setting indicates whether YouTube can show the video on YouTube properties other than the YouTube.com website.

Syntax would look something like <yt:accessControl action='embed' permission='allowed'/>

So in your example it looks like the line yt:format: "5" tells you the clip can be embedded.

like image 28
BradC Avatar answered Oct 23 '22 07:10

BradC