First, you need to install OEmbed. It is available at http://www.github.com/worldcompany/django-oembed/
git clone git://github.com/worldcompany/django-oembed/
cd django-oembed
python setup.py install
After installing, adding OEmbed consumption to your projects is a snap. First, add it to your projects’ INSTALLED_APPs and run ‘syncdb’:
# settings.py
INSTALLED_APPS = [
...
'oembed'
]
django-oembed uses a registration pattern like the admin’s. In order to be sure all apps have been loaded, django-oembed should run autodiscover() in the urls.py. If you like, you can place this code right below your admin.autodiscover() bits:
# urls.py
import oembed
oembed.autodiscover()
Now you’re ready to start consuming OEmbed-able objects. There are a couple of options depending on what you want to do. The most straightforward way to get up-and-running is to add it to your templates:
{% load oembed_tags %}
{% oembed %}blog.content{% endoembed %}
{# or use the filter #}
{{ blog.content|oembed }}
{# maybe you're working with some dimensional constraints #}
{% oembed "600x600" %}blog.content{% endoembed %}
{{ blog.content|oembed:"600x600" }}
You can consume oembed objects in python as well:
import oembed
oembed.autodiscover()
# just get the metadata
resource = oembed.site.embed('http://www.youtube.com/watch?v=nda_OSWeyn8')
resource.get_data()
{u'author_name': u'botmib',
u'author_url': u'http://www.youtube.com/user/botmib',
u'height': 313,
u'html': u'<object width="384" height="313"><param name="movie" value="http://www.youtube.com/v/nda_OSWeyn8&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/nda_OSWeyn8&fs=1" type="application/x-shockwave-flash" width="384" height="313" allowscriptaccess="always" allowfullscreen="true"></embed></object>',
u'provider_name': u'YouTube',
u'provider_url': u'http://www.youtube.com/',
u'title': u'Leprechaun in Mobile, Alabama',
u'type': u'video',
u'version': u'1.0',
u'width': 384}
# get the metadata and run it through a template for pretty presentation
from oembed.consumer import OEmbedConsumer
client = OEmbedConsumer()
embedded = client.parse_text("http://www.youtube.com/watch?v=nda_OSWeyn8")
<div class="oembed oembed-video provider-youtube">
<object width="384" height="313">
<param name="movie" value="http://www.youtube.com/v/nda_OSWeyn8&fs=1"></param>
<param name="allowFullScreen" value="true"></param>
<param name="allowscriptaccess" value="always"></param>
<embed src="http://www.youtube.com/v/nda_OSWeyn8&fs=1"
type="application/x-shockwave-flash"
width="384"
height="313"
allowscriptaccess="always"
allowfullscreen="true">
</embed>
</object>
<p class="credit">
<a href="http://www.youtube.com/watch?v=nda_OSWeyn8">Leprechaun in Mobile, Alabama</a>
by
<a href="http://www.youtube.com/user/botmib">botmib</a>
</p>
</div>'