Examples

Template examples

First you have to load the embed_video_tags template tags in your template:

{% load embed_video_tags %}

Embedding of video:

{# you can just embed #}
{% video item.video 'small' %}

{# or use variables (with embedding, too) #}
{% video item.video as my_video %}
    URL: {{ my_video.url }}
    Thumbnail: {{ my_video.thumbnail }}
    Backend: {{ my_video.backend }}
    {% video my_video 'small' %}
{% endvideo %}

Default sizes are tiny (420x315), small (480x360), medium (640x480), large (960x720) and huge (1280x960). You can set your own size:

{% video my_video '800x600' %}

Tip

We recommend to use sorl-thumbnail to change thumbnail size.

Tip

To speed up your pages, consider template fragment caching.

Model examples

Using the EmbedVideoField provides you validation of URLs.

from django.db import models
from embed_video.fields import EmbedVideoField

class Item(models.Model):
    video = EmbedVideoField()  # same like models.URLField()

Admin mixin examples

Use AdminVideoMixin in admin.py.

from django.contrib import admin
from embed_video.admin import AdminVideoMixin
from .models import MyModel

class MyModelAdmin(AdminVideoMixin, admin.ModelAdmin):
    pass

admin.site.register(MyModel, MyModelAdmin)

Custom backends

If you have specific needs and default backends don’t suits you, you can write your custom backend.

my_project/my_app/backends.py:

from embed_video.backends import VideoBackend

class CustomBackend(VideoBackend):
    re_detect = re.compile(r'http://myvideo\.com/[0-9]+')
    re_code = re.compile(r'http://myvideo\.com/(?P<code>[0-9]+)')

    allow_https = False
    pattern_url = '{protocol}://play.myvideo.com/c/{code}/'
    pattern_thumbnail_url = '{protocol}://thumb.myvideo.com/c/{code}/'

You can also overwrite VideoBackend methods, if using regular expressions isn’t well enough.

my_project/my_project/settings.py:

EMBED_VIDEO_BACKENDS = (
    'embed_video.backends.YoutubeBackend',
    'embed_video.backends.VimeoBackend',
    'embed_video.backends.SoundCloudBackend',
    'my_app.backends.CustomBackend',
)

Low level API examples

You can get instance of VideoBackend in your python code thanks to detect_backend():

from embed_video.backends import detect_backend

my_video = detect_backend('http://www.youtube.com/watch?v=H4tAOexHdR4')