Skip to main content

p4a.videoembed Package Readme

Overview

A registry and adapters for converting urls for various video sharing sites into embed codes.

This package provides some functions and zope3 components for converting urls from common streaming video sites into embed codes. The purpose is to allow for content types that provide a user entered url to display embeded video based on that url. This is to avoid allowing users to enter raw html embed codes which is potentially dangerous and cumbersome. It also allows for dynamic scaling of the generated embed code to fit with your page layout.

Components

At the heart of this product is a set of named adapters. These adapters adapt a string (url) and an integer (width) and return a unicode embed code. Currently, adapters are provided for the following video sharing sites:

But adding more is as simple as creating a function that checks if the url is appropriate for the site you want, and another to convert it into an embed code. You register the latter function as a named adapter, like:

<adapter
    for="str int"
    name="youtube"
    provides=".interfaces.IEmbedCode"
    factory=".converters.youtube_generator"
    />

And register the url checking function as a utility with the same name:

<utility
    provides=".interfaces.IURLChecker"
    component=".converters.youtube_check"
    name="youtube" />

You may optionally provide an integer ‘index’ as an attribute of the checker to determine the relative order in which the check is made (more specific checks should go earlier).

Getting the Embed Code

There are a couple ways to generate an embed code, depending on your usecase. The easiest is single adaptation of a url:

from p4a.videoembed.interfaces import IEmbedCode embed_code = IEmbedCode(url)

This gives an embed of a preset width (425px), to get a custom width, you multiadapt:

from zope.component import getMultiAdapter embed_code = getMultiAdapter((url, width), IEmbedCode)

There is also a convenient view provided for use from restricted code, it optionally takes a url and width and returns an embed code. If the url is omitted, then it will try and get one from the context by adapting to ILinkProvider (which indicates the presence of a getLink method).

<div class="EmbedCode"
     tal:define="embed_view nocall:context/@@video-embed.htm;
                 default_embed embed_view;
                 custom_width python:embed_view(width=500);
                 custom_url python:embed_view(url='http://www.youtube.com/watch?v=1111', width=250)"
     tal:replace="structure default_embed" />

This shows how you can use the view from tal to generate a url from an object that implements or is adaptable to ILinkProvider, or using an explicit url from any object.

In all of these methods the adapter checks the global utility that the named adapters are registered with and finds the appropriate one for the given url.

I hope you find this useful.

Author: Alec Mitchell <apm13@columbia.edu> Sponsor: The Daily Reel http://www.thedailyreel.com

Changelog for videoembed

videoembed - 1.2 (2009-05-17)

  • fix ComponentLookupError import from zope.component [toutpt]

  • removed unused imports reported by pyflakes [tom_gross]

  • add partial Dailymotion support [toutpt]

videoembed - 1.1 (2008-04-09)

  • added Brightcove support [Nate Aune]

videoembed - 1.1b1 (2008-02-14)

  • added partial ustream.tv support [Rocky Burt] r1672

  • added code to extract URL to FLV file from Youtube and Blip.tv (Ross Patterson) r1875 and r1879

videoembed - 1.0alpha1 (2007-04-29)

  • Initial public release. [Rocky Burt]

videoembed - 0.1 (unreleased)

  • Initial package structure. [zopeskel]

Release files for p4a.videoembed 1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for p4a.videoembed 1.3
File Size Uploaded
p4a.videoembed-1.3.zip 44.0 kB Details

Release files / p4a.videoembed-1.3.zip

Download URL p4a.videoembed-1.3.zip
Size 44.0 kB
Tags Source
SHA-256 checksum
How to use checksums
0fe117599d3d3053ab235d721173faa5961b2365f6fd110f22dbb88ece23fc76
BLAKE2b-256 checksum
How to use checksums
33528af0396970a8e8e1144e2a6a7fc020531cf18b19b78da08ec0be22dc7b19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.3 This release

1 release file

1.1

2 release files

1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page