oEmbed
oEmbed is a format for allowing an embedded representation of a URL on third party sites. The simple API allows a website to display embedded content (such as photos or videos) when a user posts a link to that resource, without having to parse the resource directly.
This document is stored on github.
Table Of Contents
1. Quick Example
A consumer (e.g. Pownce) makes the following HTTP request:
-
http://www.flickr.com/services/oembed/?url=http%3A//www.flickr.com/photos/bees/2341623661/
The provider (e.g. Flickr) then responds with an oEmbed response:
{ "version": "1.0", "type": "photo", "width": 240, "height": 160, "title": "ZB8T0193", "url": "http://farm4.static.flickr.com/3123/2341623661_7c99f48bbf_m.jpg", "author_name": "Bees", "author_url": "http://www.flickr.com/photos/bees/", "provider_name": "Flickr", "provider_url": "http://www.flickr.com/" }
This allows the consumer to turn a URL to a Flickr photo page into structured data to allow embedding of that photo in the consumer's website.
2. Full Spec
This spec is broken into three parts - configuration, the consumer request and the provider response.
An oEmbed exchange occurs between a consumer and a provider. A consumer wishes to show an embedded representation of a third party resource on their own web site, such as a photo or an embedded video. A provider implements the oEmbed API to allow consumers to fetch that representation.
2.1. Configuration
Configuration for oEmbed is very simple. Providers must specify one or more URL scheme and API endpoint pairs. The URL scheme describes which URLs provided by the service may have an embedded representation. The API endpoint describes where the consumer may request representations for those URLs.
For instance:
- URL scheme:
http://www.flickr.com/photos/*
- API endpoint:
http://www.flickr.com/services/oembed/
The URL scheme may contain one or more wildcards (specified with an asterisk). Wildcards may be present in the domain portion of the URL, or in the path. Within the domain portion, wildcards may only be used for subdomains. Wildcards may not be used in the scheme (to support HTTP and HTTPS, provide two url/endpoint pairs).
Some examples:
-
http://www.flickr.com/photos/*
OK -
http://www.flickr.com/photos/*/foo/
OK -
http://*.flickr.com/photos/*
OK -
http://*.com/photos/*
NOT OK -
*://www.flickr.com/photos/*
NOT OK
The API endpoint must point to an HTTP endpoint URL (not HTTPS) which implements the API described below.
2.2. Consumer Request
Requests sent to the API endpoint must be HTTP GET requests, with all arguments sent as query parameters. All arguments must be urlencoded (as per RFC 1738).
The following query parameters are defined as part of the spec:
url
(required)- The URL to retrieve embedding information for.
maxwidth
(optional)- The maximum width of the embedded resource. Only applies to some resource types (as specified below). For supported resource types, this parameter must be respected by providers.
maxheight
(optional)- The maximum height of the embedded resource. Only applies to some resource types (as specified below). For supported resource types, this parameter must be respected by providers.
format
(optional)- The required response format. When not specified, the provider can return any valid response format. When specified, the provider must return data in the request format, else return an error (see below for error codes).
Providers should ignore all other arguments it doesn't expect. Providers are welcome to support custom additional parameters.
Some examples:
-
http://flickr.com/services/oembed?url=http%3A//flickr.com/photos/bees/2362225867/
-
http://flickr.com/services/oembed?url=http%3A//flickr.com/photos/bees/2362225867/&maxwidth=300&maxheight=400&format=json
Note: Providers may choose to have the format specified as part of the endpoint URL itself, rather than as a query string parameter.
For instance:
- URL scheme:
http://www.flickr.com/photos/*
- API XML endpoint:
http://www.flickr.com/services/oembed.xml
- API JSON endpoint:
http://www.flickr.com/services/oembed.json
In this case, the format parameter is not needed and will be ignored. When a provider publishes a URL scheme and API endpoint pair, they should clearly state whether the format is implicit in the endpoint or if it needs to be passed as an argument.
2.3. Provider Response
The response returned by the provider can be in either JSON or XML. Each format specifies a way of encoding name-value pairs which comprise the response data. Each format has an associated mime-type which must be returned in the Content-type
header along with the response.
2.3.1. JSON response
JSON responses must contain well formed JSON and must use the mime-type of application/json
. The JSON response format may be requested by the consumer by specifying a format
of json
.
For example:
{ "foo": "bar", "baz": 1 }
The key-value pairs to be returned are specified below. All text must be UTF-8 encoded.
2.3.2. XML response
XML responses must use the mime-type of text/xml
. The XML response format may be requested by the consumer by specifying a format
of xml
. The response body must contain well formed XML with a root element called oembed
and child elements for each key containing the value within the element body. For example:
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <oembed> <foo>bar</foo> <baz>1</baz> </oembed>
The key-value pairs to be returned are specified below. All text must be UTF-8 encoded. Values should be escaped PCDATA. For example:
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <oembed> <html><b>awesome!</b></html> </oembed>
2.3.4. Response parameters
Responses can specify a resource type, such as photo
or video
. Each type has specific parameters associated with it. The following response parameters are valid for all response types:
type
(required)- The resource type. Valid values, along with value-specific parameters, are described below.
version
(required)- The oEmbed version number. This must be
1.0
. title
(optional)- A text title, describing the resource.
author_name
(optional)- The name of the author/owner of the resource.
author_url
(optional)- A URL for the author/owner of the resource.
provider_name
(optional)- The name of the resource provider.
provider_url
(optional)- The url of the resource provider.
cache_age
(optional)- The suggested cache lifetime for this resource, in seconds. Consumers may choose to use this value or not.
thumbnail_url
(optional)- A URL to a thumbnail image representing the resource. The thumbnail must respect any
maxwidth
andmaxheight
parameters. If this parameter is present,thumbnail_width
andthumbnail_height
must also be present. thumbnail_width
(optional)- The width of the optional thumbnail. If this parameter is present,
thumbnail_url
andthumbnail_height
must also be present. thumbnail_height
(optional)- The height of the optional thumbnail. If this parameter is present,
thumbnail_url
andthumbnail_width
must also be present.
Providers may optionally include any parameters not specified in this document (so long as they use the same key-value format) and consumers may choose to ignore these. Consumers must ignore parameters they do not understand.
2.3.4.1. The photo
type
This type is used for representing static photos. The following parameters are defined:
url
(required)- The source URL of the image. Consumers should be able to insert this URL into an
<img>
element. Only HTTP and HTTPS URLs are valid. width
(required)- The width in pixels of the image specified in the
url
parameter. height
(required)- The height in pixels of the image specified in the
url
parameter.
Responses of this type must obey the maxwidth
and maxheight
request parameters.
2.3.4.2. The video
type
This type is used for representing playable videos. The following parameters are defined:
html
(required)- The HTML required to embed a video player. The HTML should have no padding or margins. Consumers may wish to load the HTML in an off-domain iframe to avoid XSS vulnerabilities.
width
(required)- The width in pixels required to display the HTML.
height
(required)- The height in pixels required to display the HTML.
Responses of this type must obey the maxwidth
and maxheight
request parameters. If a provider wishes the consumer to just provide a thumbnail, rather than an embeddable player, they should instead return a photo
response type.
2.3.4.3. The link
type
Responses of this type allow a provider to return any generic embed data (such as title
and author_name
), without providing either the url or html parameters. The consumer may then link to the resource, using the URL specified in the original request.
2.3.4.4. The rich
type
This type is used for rich HTML content that does not fall under one of the other categories. The following parameters are defined:
html
(required)- The HTML required to display the resource. The HTML should have no padding or margins. Consumers may wish to load the HTML in an off-domain iframe to avoid XSS vulnerabilities. The markup should be valid XHTML 1.0 Basic.
width
(required)- The width in pixels required to display the HTML.
height
(required)- The height in pixels required to display the HTML.
Responses of this type must obey the maxwidth
and maxheight
request parameters.
2.3.5. Errors
Providers should return any error conditions as HTTP status codes. The following status codes are defined as part of the oEmbed specification:
404 Not Found
- The provider has no response for the requested
url
parameter. This allows providers to be broad in their URL scheme, and then determine at call time if they have a representation to return. 501 Not Implemented
- The provider cannot return a response in the requested format. This should be sent when (for example) the request includes
format=xml
and the provider doesn't support XML responses. However, providers are encouraged to support both JSON and XML. 401 Unauthorized
- The specified URL contains a private (non-public) resource. The consumer should provide a link directly to the resource instead of any embedding any extra information, and rely on the provider to provide access control.
3. Security considerations
When a consumer displays any URLs, they will probably want to filter the URL scheme to be one of http
, https
or mailto
, although providers are free to specify any valid URL. Without filtering, Javascript:...
style URLs could be used for XSS attacks.
When a consumer displays HTML (as with video embeds), there's a vector for XSS attacks from the provider. To avoid this, it is recommended that consumers display the HTML in an iframe
, hosted from another domain. This ensures that the HTML cannot access cookies from the consumer domain.
4. Discovery
oEmbed providers can choose to make their oEmbed support discoverable by adding elements to the head of their existing (X)HTML documents.
For example:
<link rel="alternate" type="application/json+oembed" href="http://flickr.com/services/oembed?url=http%3A%2F%2Fflickr.com%2Fphotos%2Fbees%2F2362225867%2F&format;=json" title="Bacon Lollys oEmbed Profile" /> <link rel="alternate" type="text/xml+oembed" href="http://flickr.com/services/oembed?url=http%3A%2F%2Fflickr.com%2Fphotos%2Fbees%2F2362225867%2F&format;=xml" title="Bacon Lollys oEmbed Profile" />
The URLs contained within the href
attribute should be the full oEmbed endpoint plus URL and any needed format parameter. No other request parameters should be included in this URL.
The type
attribute must contain either application/json+oembed
for JSON responses, or text/xml+oembed
for XML.
5. More examples
5.1. Video example
Request:
http://www.youtube.com/oembed?url=http%3A//youtube.com/watch%3Fv%3DM3r2XDceM6A&format=json
Response:
{ "version": "1.0", "type": "video", "provider_name": "YouTube", "provider_url": "http://youtube.com/", "width": 425, "height": 344, "title": "Amazing Nintendo Facts", "author_name": "ZackScott", "author_url": "http://www.youtube.com/user/ZackScott", "html": "<object width=\"425\" height=\"344\"> <param name=\"movie\" value=\"http://www.youtube.com/v/M3r2XDceM6A&fs=1\"></param> <param name=\"allowFullScreen\" value=\"true\"></param> <param name=\"allowscriptaccess\" value=\"always\"></param> <embed src=\"http://www.youtube.com/v/M3r2XDceM6A&fs=1\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"344\" allowscriptaccess=\"always\" allowfullscreen=\"true\"></embed> </object>", }
5.2. Link example
Request:
http://iamcal.com/oembed/?url=http%3A//www.iamcal.com/linklog/1206113631/&format=xml
Response:
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <oembed> <version>1.0</version> <type>link</type> <author_name>Cal Henderson</author_name> <author_url>http://iamcal.com/</author_url> <cache_age>86400</cache_age> <provider_name>iamcal.com</provider_name> <provider_url>http://iamcal.com/</provider_url> </oembed>
6. Authors
- Cal Henderson (cal [at] iamcal.com)
- Mike Malone (mjmalone [at] gmail.com)
- Leah Culver (leah.culver [at] gmail.com)
- Richard Crowley (r [at] rcrowley.org)
7. Implementations
7.1. Providers
IFTTT (http://www.ifttt.com/)
- URL scheme:
http://ifttt.com/recipes/*
- API endpoint:
http://www.ifttt.com/oembed/
- Example: https://ifttt.com/oembed?url=https%3A%2F%2Fifttt.com%2Frecipes%2F107745
- Supports discovery via
<link>
tags
YouTube (http://www.youtube.com/)
- API endpoint:
http://www.youtube.com/oembed
- Supports discovery via
<link>
tags - Example: http://www.youtube.com/oembed?url=http%3A//www.youtube.com/watch?v%3D-UUx10KOWIE&format;=xml
Flickr (http://www.flickr.com/)
- URL scheme:
http://*.flickr.com/photos/*
- URL scheme:
http://flic.kr/p/*
- API endpoint:
http://www.flickr.com/services/oembed/
- Example: http://flickr.com/services/oembed?url=http%3A%2F%2Fflickr.com%2Fphotos%2Fbees%2F2362225867%2F
- Supports discovery via
<link>
tags
Viddler (http://www.viddler.com/)
- URL scheme:
http://www.viddler.com/v/*
- API endpoint:
http://www.viddler.com/oembed/
- Documentation: http://developers.viddler.com/documentation/oembed/
- Example: http://www.viddler.com/oembed/?format=xml&url=http%3A%2F%2Fwww.viddler.com%2Fv%2F1646c55
Qik (http://qik.com/)
- URL scheme (videos):
http://qik.com/video/*
- URL scheme (user channels):
http://qik.com/*
- API endpoint:
http://qik.com/api/oembed.{format}
- Example: http://qik.com/api/oembed.xml?url=http%3A//qik.com/video/49565
Revision3 (http://revision3.com/)
- URL scheme:
http://*.revision3.com/*
- API endpoint:
http://revision3.com/api/oembed/
- Example: http://revision3.com/api/oembed/?url=http%3A//revision3.com/diggnation/2008-04-17xsanned/&format;=xml
Hulu (http://www.hulu.com/)
- URL scheme:
http://www.hulu.com/watch/*
- API endpoint:
http://www.hulu.com/api/oembed.{format}
- Example: http://www.hulu.com/api/oembed.xml?url=http%3A//www.hulu.com/watch/20807/late-night-with-conan-obrien-wed-may-21-2008
Vimeo (http://vimeo.com/)
- Docs: http://vimeo.com/api/docs/oembed
- URL scheme (video):
http://vimeo.com/*
- URL scheme (group video):
http://vimeo.com/groups/*/videos/*
- Endpoint:
http://vimeo.com/api/oembed.{format}
- Example: http://vimeo.com/api/oembed.xml?url=http%3A//vimeo.com/7100569
CollegeHumor (http://www.collegehumor.com/)
- URL scheme (videos):
http://www.collegehumor.com/video/*
- API Endpoint:
http://www.collegehumor.com/oembed.{format}
- Example: http://www.collegehumor.com/oembed.xml?url=http%3A%2F%2Fwww.collegehumor.com%2Fvideo%2F3922232%2Fprank-war-7-the-half-million-dollar-shot
- Supports discovery via
<link>
tags
Jest (http://www.jest.com/)
- URL scheme (videos):
http://www.jest.com/video/*
- API Endpoint:
http://www.jest.com/oembed.{format}
- Example: http://www.jest.com/oembed.xml?url=http%3A%2F%2Fwww.jest.com%2Fvideo%2F197394%2Fpaul-ryan-rap
- Example: http://www.jest.com/oembed.json?url=http%3A%2F%2Fwww.jest.com%2Fvideo%2F197394%2Fpaul-ryan-rap
- Supports discovery via
<link>
tags
- URL scheme (videos):
http://www.jest.com/embed/*
- API Endpoint:
http://www.jest.com/oembed.{format}
- Example: http://www.jest.com/oembed.xml?url=http%3A%2F%2Fwww.jest.com%2Fembed%2F199639%2Fengineering-students-go-berserk-for-dancers
- Example: http://www.jest.com/oembed.json?url=http%3A%2F%2Fwww.jest.com%2Fembed%2F199639%2Fengineering-students-go-berserk-for-dancers
- Supports discovery via
<link>
tags
Poll Everywhere (http://www.polleverywhere.com/)
- URL scheme:
http://www.polleverywhere.com/polls/*
- URL scheme:
http://www.polleverywhere.com/multiple_choice_polls/*
- URL scheme:
http://www.polleverywhere.com/free_text_polls/*
- API endpoint:
http://www.polleverywhere.com/services/oembed/
- Documentation: http://api.polleverywhere.com/index.php?title=OEmbed
- Example: http://polleverywhere.com/services/oembed?url=http://www.polleverywhere.com/multiple_choice_polls/LTIwNzM1NTczNTE&format;=xml
My Opera (http://my.opera.com/)
- API endpoint:
http://my.opera.com/service/oembed
- Documentation: http://my.opera.com/devblog/blog/2008/12/02/embedding-my-opera-content-oembed
- Example: http://my.opera.com/service/oembed/?url=http%3A%2F%2Fmy.opera.com%2Fcstrep%2Falbums%2Fshow.dml?id%3D504322
Embedly (http://api.embed.ly)
- URL scheme: Various (see docs)
- API endpoint:
http://api.embed.ly/1/oembed
- Documentation: http://api.embed.ly/documentation
- Example: http://api.embed.ly/1/oembed?url=http://www.youtube.com/watch%3Fv%3DB-m6JDYRFvk
- Incorporating oohEmbed (http://oohembed.com/)
iFixit (http://www.iFixit.com)
- URL scheme:
http://www.ifixit.com/Guide/View/*
- Endpoint:
http://www.ifixit.com/Embed
- Documentation: http://www.ifixit.com/api/doc/embed
- Example: http://www.ifixit.com/Embed?url=http%3A%2F%2Fwww.ifixit.com%2FTeardown%2FiPhone-4-Teardown%2F3130%2F1&format;=json
SmugMug (http://www.smugmug.com/)
- URL Scheme:
http://*.smugmug.com/*
- URL Scheme:
http://*.example.com/*
(where example.com = SmugMug customer domain) - Endpoint:
http://api.smugmug.com/services/oembed/
- Documentation: http://wiki.smugmug.net/display/API/oEmbed
- Example: http://api.smugmug.com/services/oembed/?url=http://www.smugmug.com/popular/all%23125787395_hQSj9
- Supports discovery via <link> tags
Deviantart.com (http://www.deviantart.com)
- URL Scheme:
http://*.deviantart.com/art/*
- URL Scheme:
http://*.deviantart.com/*#/d*
- URL Scheme:
http://fav.me/*
- URL Scheme:
http://sta.sh/*
- Endpoint:
http://backend.deviantart.com/oembed
- Documentation: http://www.deviantart.com/developers/oembed
- Example: http://backend.deviantart.com/oembed?format=xml&url;=http%3A%2F%2Fbrowse.deviantart.com%2Fart%2FVita-Brevis-379998342
SlideShare (http://www.slideshare.net/)
- URL Scheme:
http://www.slideshare.net/*/*
- Endpoint:
http://www.slideshare.net/api/oembed/2
- Documentation: http://www.slideshare.net/developers/oembed
- Example: http://www.slideshare.net/api/oembed/2?url=http://www.slideshare.net/haraldf/business-quotes-for-2011&format=json
- Supports discovery via <link> tags
WordPress.com (http://wordpress.com/)
- Endpoint:
http://public-api.wordpress.com/oembed/
- Documentation: http://develop.wordpress.com/oembed-provider-api/
- Example: http://public-api.wordpress.com/oembed/1.0/?format=json&url;=http%3A%2F%2Fmatt.wordpress.com%2F2011%2F07%2F14%2Fclouds-over-new-york%2F&for;=oembed.com
- Supports discovery via <link> tags
chirbit.com (http://www.chirbit.com/)
- URL Scheme:
http://chirb.it/*
- Endpoint:
http://chirb.it/oembed.json or http://chirb.it/oembed.xml
- Example: http://chirb.it/oembed.json?url=http%3A//chirb.it/OBnAr1
- Supports discovery via <link> tags
nfb.ca (http://www.nfb.ca/)
- URL Scheme:
http://*.nfb.ca/films/*
- Endpoint:
http://www.nfb.ca/remote/services/oembed/
- Example: http://www.nfb.ca/remote/services/oembed/?url=http://www.nfb.ca/film/aboriginality&format;=xml
- Supports discovery via <link> tags
Scribd (http://www.scribd.com/)
- URL Scheme:
http://www.scribd.com/doc/*
- Endpoint:
http://www.scribd.com/services/oembed/
- Example: http://www.scribd.com/services/oembed/?format=xml&url;=http://www.scribd.com/doc/110799637/Synthesis-of-Knowledge-Effects-of-Fire-and-Thinning-Treatments-on-Understory-Vegetation-in-Dry-U-S-Forests
Dotsub (http://dotsub.com/)
- URL scheme:
http://dotsub.com/view/*
- Documentation: http://dotsub.com/solutions/oEmbed
- Endpoint:
http://dotsub.com/services/oembed
- Example: http://dotsub.com/services/oembed?url=http://dotsub.com/view/665bd0d5-a9f4-4a07-9d9e-b31ba926ca78&format;=xml
Animoto (http://animoto.com/)
- URL scheme:
http://animoto.com/play/*
- API endpoint:
http://animoto.com/oembeds/create
- Documentation: http://help.animoto.com/entries/109992-oEmbed-API
- Example: http://animoto.com/oembeds/create/?format=xml&url;=http%3A%2F%2Fanimoto.com%2Fplay%2FJzwsBn5FRVxS0qoqcBP5zA
Rdio (http://rdio.com/)
- URL scheme:
http://*.rdio.com/artist/*
- URL scheme:
http://*.rdio.com/people/*
- API endpoint:
http://www.rdio.com/api/oembed/
- Documentation: http://developer.rdio.com/docs/oEmbed
- Example: http://www.rdio.com/api/oembed/?format=json&url;=http://www.rdio.com/artist/The_Black_Keys/album/Brothers/
MixCloud (http://mixcloud.com)
- URL Scheme:
http://www.mixcloud.com/*/*/
- Endpoint:
http://www.mixcloud.com/oembed/
- Documentation: http://www.mixcloud.com/developers/documentation/
- Example: http://www.mixcloud.com/oembed/?url=http%3A//www.mixcloud.com/TechnoLiveSets/jon_rundell-live-electrobeach-festival-benidorm-16-08-2013/&format;=xml
Screenr (http://www.screenr.com)
- URL Scheme:
http://www.screenr.com/*/
- Endpoint:
http://www.screenr.com/api/oembed.{format}
- Example: http://www.screenr.com/api/oembed.xml?url=http://screenr.com/3jns
FunnyOrDie (http://www.funnyordie.com/)
- URL scheme:
http://www.funnyordie.com/videos/*
- API endpoint:
http://www.funnyordie.com/oembed.{format}
- Example: http://www.funnyordie.com/oembed.xml?url=http://www.funnyordie.com/videos/a7311134ac/patton-oswalt-in-heavy-metal
Poll Daddy (http://polldaddy.com)
- URL scheme:
http://*.polldaddy.com/s/*
- URL scheme:
http://*.polldaddy.com/poll/*
- URL scheme:
http://*.polldaddy.com/ratings/*
- API endpoint:
http://polldaddy.com/oembed/
- Documentation: http://support.polldaddy.com/oembed/
- Example: http://polldaddy.com/oembed/?url=http://polldaddy.com/ratings/39/&format;=xml
Ted (http://ted.com)
- URL scheme:
http://ted.com/talks/*
- Example: http://www.ted.com/talks/oembed.xml?url=http://www.ted.com/talks/jill_bolte_taylor_s_powerful_stroke_of_insight.html
VideoJug (http://videos.sapo.pt/)
- URL scheme:
http://www.videojug.com/film/*
- URL scheme:
http://www.videojug.com/interview/*
- API endpoint:
http://www.videojug.com/oembed.{format}
- Example: http://www.videojug.com/oembed.xml?url=http://www.videojug.com/film/how-to-tie-a-knot-braid
Sapo Videos (http://videos.sapo.pt)
- URL scheme:
http://videos.sapo.pt/*
- API endpoint:
http://videos.sapo.pt/oembed
- Example: http://videos.sapo.pt/oembed?url=http://videos.sapo.pt/dNbiosGa9YZHfLrhkA88&format;=xml
Justin.tv (http://www.justin.tv)
- URL scheme:
http://www.justin.tv/*
- API endpoint:
http://api.justin.tv/api/embed/from_url.{json}
- Example: http://api.justin.tv/api/embed/from_url.xml?url=http://www.justin.tv/deepellumonair
Official FM (http://official.fm/)
- URL scheme:
http://official.fm/tracks/*
- URL scheme:
http://official.fm/playlists/*
- API endpoint:
http://official.fm/services/oembed.{format}
- Documentation: https://github.com/officialfm/api/blob/master/sections/oembed.md
- Example: http://official.fm/services/oembed.json?url=http://official.fm/tracks/npTR
HuffDuffer (http://huffduffer.com)
- URL scheme:
http://huffduffer.com/*/*
- API endpoint:
http://huffduffer.com/oembed
- Example: http://huffduffer.com/oembed?url=http://huffduffer.com/jxpx777/125342&format;=xml
Shoudio (http://shoudio.com)
- URL scheme:
http://shoudio.com/*
- URL scheme:
http://shoud.io/*
- API endpoint:
http://shoudio.com/api/oembed
- Example: http://shoudio.com/api/oembed?format=xml&url;=http://shoudio.com/user/shoister/status/8122
Moby Picture (http://www.mobypicture.com)
- URL scheme:
http://www.mobypicture.com/user/*/view/*
- URL scheme:
http://moby.to/*
- API endpoint:
http://api.mobypicture.com/oEmbed
- Example: http://api.mobypicture.com/oEmbed?format=xml&url;=http://mobypicture.com/user/Henk_Voermans/view/15880044
23HQ (http://www.23hq.com)
- URL scheme:
http://www.23hq.com/*/photo/*
- API endpoint:
http://www.23hq.com/23/oembed
- Example: http://www.23hq.com/23/oembed?url=http://www.23hq.com/mprove/photo/13297717
Urtak (http://urtak.com)
- URL scheme:
http://urtak.com/u/*
- URL scheme:
http://urtak.com/clr/*
- API endpoint:
http://oembed.urtak.com/1/oembed
- Documentation: http://oembed.urtak.com/
- Example: http://oembed.urtak.com/1/oembed?format=xml&url;=https://www.urtak.com/u/9387/
Cacoo (https://cacoo.com)
- URL scheme:
https://cacoo.com/diagrams/*
- API endpoint:
http://cacoo.com/oembed.{format}
- Documentation: https://cacoo.com/lang/en/api_oembed
- Example: http://cacoo.com/oembed.xml?url=http://cacoo.com/diagrams/m9uZtizE5I2GkFR6/
Dipity (http://www.dipity.com)
- URL scheme:
http://www.dipity.com/*/*/
- API endpoint:
http://www.dipity.com/oembed/timeline/
- Example: http://www.dipity.com/oembed/timeline/?format=xml&url;=http://www.dipity.com/ragutier/Historia_de_la_Web/
Roomshare (http://roomshare.jp)
- URL scheme:
http://roomshare.jp/post/*
- URL scheme:
http://roomshare.jp/en/post/*
- API endpoint:
http://roomshare.jp/en/oembed.{format}
- Example: http://roomshare.jp/en/oembed.xml?url=http://roomshare.jp/en/post/137167
Daily Motion (http://www.dailymotion.com)
- URL scheme:
http://www.dailymotion.com/video/*
- API endpoint:
http://www.dailymotion.com/services/oembed
- Documentation: http://www.dailymotion.com/doc/api/oembed.html
- Example: http://www.dailymotion.com/services/oembed?format=xml&url;=http://www.dailymotion.com/video/xoxulz_babysitter_animals
Crowd Ranking (http://crowdranking.com)
- URL scheme:
http://crowdranking.com/*/*
- API endpoint:
http://crowdranking.com/api/oembed.{format}
- Example: http://crowdranking.com/api/oembed.xml?url=http://crowdranking.com/rankings/t470g0--best-tea
CircuitLab (https://www.circuitlab.com/)
- URL scheme:
https://www.circuitlab.com/circuit/*
- Endpoint:
https://www.circuitlab.com/circuit/oembed/
- Example: https://www.circuitlab.com/circuit/oembed/?format=json&url=https://www.circuitlab.com/circuit/e38756/555-timer-as-astable-multivibrator-oscillator/
- Supports discovery via <link> tags
Geograph Britain and Ireland (https://www.geograph.org.uk/)
- URL scheme:
http://*.geograph.org.uk/*
- URL scheme:
http://*.geograph.co.uk/*
- URL scheme:
http://*.geograph.ie/*
- URL scheme:
http://*.wikimedia.org/*_geograph.org.uk_*
(can also help with Geograph images crossloaded to Wikimedia Commons) - File scheme:
geograph-\d+-*.jpg
(files saved from Geograph may look like this) - Endpoint:
http://api.geograph.org.uk/api/oembed
- Example: http://api.geograph.org.uk/api/oembed?url=http://www.geograph.org.uk/photo/2928776&format=json
- Example: http://api.geograph.org.uk/api/oembed?url=http://s0.geograph.org.uk/geophotos/02/92/87/2928776_72cdbeab.jpg
Geograph Germany (http://geo-en.hlipp.de/)
- URL scheme:
http://geo-en.hlipp.de/*
- URL scheme:
http://geo.hlipp.de/*
- URL scheme:
http://germany.geograph.org/*
- Endpoint:
http://geo.hlipp.de/restapi.php/api/oembed
- Example: http://geo.hlipp.de/restapi.php/api/oembed?url=http://geo.hlipp.de/photo/20260&format=json
- Example: http://geo.hlipp.de/restapi.php/api/oembed?url=http://geo.hlipp.de/photos/02/02/020260_dcfdbf8e.jpg
Geograph Channel Islands (http://channel-islands.geograph.org/)
- URL scheme:
http://*.geograph.org.gg/*
- URL scheme:
http://*.geograph.org.je/*
- URL scheme:
http://channel-islands.geograph.org/*
- URL scheme:
http://channel-islands.geographs.org/*
- URL scheme:
http://*.channel.geographs.org/*
- Endpoint:
http://www.geograph.org.gg/api/oembed
- Example: http://www.geograph.org.gg/api/oembed?url=http://www.geograph.org.gg/photo/773
- Example: http://www.geograph.org.gg/api/oembed?url=http://s1.channel.geographs.org/photos/00/07/000773_e1e23765_120x120.jpg&format=json
Quiz.biz (http://www.quiz.biz/)
- URL scheme:
http://www.quiz.biz/quizz-*.html
- API Endpoint:
http://www.quiz.biz/api/oembed
- Documentation: http://www.quiz.biz/aide-oembed.php
- Example: http://www.quiz.biz/api/oembed?url=http://www.quiz.biz/quizz-182015.html&format;=json
- Supports discovery via
<link>
tags
Quizz.biz (http://www.quizz.biz/)
- URL scheme:
http://www.quizz.biz/quizz-*.html
- API Endpoint:
http://www.quizz.biz/api/oembed
- Documentation: http://www.quizz.biz/aide-oembed.php
- Example: http://www.quizz.biz/api/oembed?url=http://www.quizz.biz/quizz-339842.html&format;=json
- Supports discovery via
<link>
tags
Coub (http://coub.com/)
- URL scheme:
http://coub.com/view/*
- URL scheme:
http://coub.com/embed/*
- API endpoint:
http://coub.com/api/oembed.{format}
- Example: http://coub.com/api/oembed.xml?url=http://coub.com/view/um0um0
- Example: http://coub.com/api/oembed.json?url=http://coub.com/view/um0um0
- Example: http://coub.com/api/oembed.xml?url=http://coub.com/embed/um0um0
- Example: http://coub.com/api/oembed.json?url=http://coub.com/embed/um0um0
SpeakerDeck (https://speakerdeck.com)
- URL Scheme:
http://speakerdeck.com/*/*
- URL Scheme:
https://speakerdeck.com/*/*
- Endpoint:
https://speakerdeck.com/oembed.json (only supports json)
- Example: https://speakerdeck.com/oembed.json?url=https://speakerdeck.com/wallat/why-backbone
- Supports discovery via <link> tags
Alpha App Net (https://alpha.app.net)
- URL Scheme:
https://alpha.app.net/*/post/*
- URL Scheme:
https://photos.app.net/*/*
- Endpoint:
https://alpha-api.app.net/oembed (only supports json)
- Documentation: http://developers.app.net/docs/other/oembed/
- Example: https://alpha-api.app.net/oembed?url=https://alpha.app.net/breakingnews/post/9153521
BlipTV (http://blip.tv/)
- URL Scheme:
http://*.blip.tv/*/*
- Endpoint:
http://blip.tv/oembed/ (only supports json)
- Example: http://blip.tv/oembed/?url=http://blip.tv/nostalgiacritic/nostalgia-critic-sailor-moon-6625851
YFrog (http://yfrog.com/)
- URL Scheme:
http://*.yfrog.com/*
- URL Scheme:
http://yfrog.us/*
- Endpoint:
http://www.yfrog.com/api/oembed(only supports json)
- Documentation: http://twitter.yfrog.com/page/api#a8
- Example: http://www.yfrog.com/api/oembed?url=http://yfrog.com/jukynnj
Instagram (https://instagram.com)
- URL Scheme:
http://instagram.com/p/*
- URL Scheme:
http://instagr.am/p/*
- Endpoint:
http://api.instagram.com/oembed (only supports json)
- Documentation: http://instagram.com/developer/embedding/#oembed
- Example: http://api.instagram.com/oembed?url=http://instagram.com/p/V8UMy0LjpX/
SoundCloud (http://soundcloud.com/)
- URL scheme:
http://soundcloud.com/*
- Endpoint:
https://soundcloud.com/oembed
- Example: https://soundcloud.com/oembed?url=https://www.soundcloud.com/comedy-central/the-unf-kables-dave-attell/&format;=xml
On Aol (http://on.aol.com/)
- URL scheme:
http://on.aol.com/video/*
- Endpoint:
http://on.aol.com/api
- Example: http://on.aol.com/api?url=http://on.aol.com/video/plans-to-clone-john-lennon-using-one-of-his-teeth-517906689
Kickstarter (http://www.kickstarter.com)
- URL scheme:
http://www.kickstarter.com/projects/*
- Endpoint:
http://www.kickstarter.com/services/oembed
- Example: http://www.kickstarter.com/services/oembed?url=http%3A%2F%2Fwww.kickstarter.com%2Fprojects%2F1115015686%2Fhelp-support-the-kiggins-theatre-to-go-digital
Ustream (http://www.ustream.tv)
- URL scheme:
http://*.ustream.tv/*
- URL scheme:
http://*.ustream.com/*
- API endpoint:
http://www.ustream.tv/oembed (only supports json)
- Example: http://www.ustream.tv/oembed?url=http://www.ustream.tv/channel/americatv2oficial
GMEP (https://gmep.org)
- URL scheme:
https://gmep.org/media/*
- API endpoint:
https://gmep.org/oembed.{format}
- Example: https://gmep.org/oembed.xml?url=https://gmep.org/media/14769
Daily Mile (http://www.dailymile.com)
- URL scheme:
http://www.dailymile.com/people/*/entries/*
- API endpoint:
http://api.dailymile.com/oembed?format=json (only supports json)
- Example: http://api.dailymile.com/oembed?format=json&url;=http://www.dailymile.com/people/EddieJ3/entries/24776213
Sketchfab (http://sketchfab.com)
- URL scheme:
http://sketchfab.com/show/*
- URL scheme:
https://sketchfab.com/show/*
- API endpoint:
http://sketchfab.com/oembed (only supports json)
- Example: https://sketchfab.com/oembed?url=https://sketchfab.com/show/b7LzIm8JrnPw4GBDOMBNGYc39qM
Meetup (http://www.meetup.com)
- URL scheme:
http://meetup.com/*
- URL scheme:
http://meetu.ps/*
- API endpoint:
https://api.meetup.com/oembed (only supports json)
- Documentation: http://www.meetup.com/meetup_api/docs/oembed/
- Example: https://api.meetup.com/oembed?format=json&url;=http://www.meetup.com/PHPColMeetup/photos/
7.2. Consumers
To have a particular consumer display your OEmbed, please contact the consumer with your provider's URL scheme and API endpoint.
Buckybase (http://buckybase.appspot.com/)
- Contact: Manuel Simoni (msimoni [at] gmail.com)
280 Slides (http://280slides.com/)
- Contact: Ross Boucher (rboucher [at] gmail.com)
Dumble (http://oohembed.com/dumble/)
- Contact: Deepak Sarda (deepak.sarda [at] gmail.com)
Iframely (http://iframely.com/)
- Contact: Ivan Paramonau (i.paramonau [at] gmail.com)
7.3. Libraries
- PHP: php-oembed (http://code.google.com/p/php-oembed/)
- PHP: Services_oEmbed (http://pear.php.net/package/Services_oEmbed)
- PHP: Essence (https://github.com/felixgirault/essence)
- PHP: Embera (https://github.com/mpratt/Embera)
- Perl: Web-oEmbed (http://search.cpan.org/~miyagawa/Web-oEmbed/)
- Ruby: oembed_links (http://github.com/netshade/oembed_links)
- Python: PyEmbed (http://pyembed.github.io)
- Python oEmbed (http://code.google.com/p/python-oembed/)
- Django: djangoembed (http://github.com/worldcompany/djangoembed)
- Java: java-oembed (https://github.com/michael-simons/java-oembed)
- .Net: oEmbed API Wrapper (http://oembed.codeplex.com/)
- JQuery: oEmbed API Wrapper (https://github.com/starfishmod/jquery-oembed-all)
- Node.js: oEmbed API Gateway (https://github.com/itteco/iframely)
Press and Links
This document is stored on github. Please check the mailing list, fork and contribute.