Recently, I presented a workshop to aspiring and established musicians on “Enhancing Your Exposure on the Web: The Electronic Press Kit”. Part of my advice was to use the free bandwidth of other sites to host images, audio and video clips by embedding media on their own sites.
Someone asked what I meant by “embedding”. I quickly demostrated how, using a YouTube video. But in showing the example, I suddenly realized that while it seemed simple to me, embedding media in a web page is actually a fairly complex task to someone who makes music, not HTML pages.
A small but prominent group of websites, lead by Pownce.com, has developed oEmbed, a formal standard that lets consumers of media ask providers of media how best to embed that media. (Thanks to Adam Howell at Vitamin News for the notice.)
The REST-based protocol allows consumbers such as this blog to send an oEmbed request to a provider such as Flickr and receive a return data structure listing author’s name and url, thumnail information, and the data such as size and url required to create an or tag.
Here’s an example, using an oEmbed request to Flickr:
One problem with the implementation jumped out out me: Even among the small number of providers in the initial announcement, there was no consistency of the provider endpoint URL. Some were “http://website.com/oembed” while others were “http://website.com/services/oembed” or “http://website.com/api/oembed”. This means that plugins, widgets and libraries must contain code specific to each provider.
It’s also interesting that, in the initial specification at least, there is no mention of copyright or license. This would seem to be an oversight.
The specification is a truly valuable step forward toward the Semantic Web envisioned by the pioneers such as Tim Berners-Lee.
For more information on oEmbed, visit the website at oembed.com. The authors and originators of the specification are:
- Cal Henderson (cal [at] iamcal.com)
- Mike Malone (mike [at] pownce.com)
- Leah Culver (leah [at] pownce.com)
- Richard Crowley (r [at] rcrowley.org)