Video Embed Code Cleaner
Project description
Cleans and updates your video’s embed code.
Over time, the embed codes used for videos from various providers have changed and evolved, to make them more and more compatible with a broader set of devices.
This is where vecc is useful: it detects the video provider and id from a given embed code, and provides various utilities to clean this code and validate that the video is still available.
Install
Either use pip, which is the easiest way:
$ pip install vecc
Either download the tarball from http://pypi.python.org/pypi/vecc, untar it, and install it manually:
$ python setup.py install
Usage
$ vecc -h usage: vecc [-h] [--version] {clean,validate} ... Video Embed Code Cleaner. optional arguments: -h, --help show this help message and exit -t TIMEOUT, --timeout TIMEOUT timeout for the validation (10 seconds by default) --version show program's version number and exit sub-commands: {clean,validate} clean clean the embed code validate validate that the video is still available
Sub-commands
clean: takes a video embed code, and returns the video id, provider, and new embed code. Takes an optional -v|--validate parameter, to check if the video is still available.
validate: takes a video id and provider, and check if it’s still available.
Return codes
There’s three different return codes possible:
1: Timeout while validating (doing a HEAD request) the video
2: Provider not found
3: The video is not available anymore
Example
$ vecc clean '<object width="480" height="381"><param name="movie" value="http://www.dailymotion.com/swf/k6Lg9UXest3kho5p9X&related=0"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.dailymotion.com/swf/k6Lg9UXest3kho5p9X&related=0" type="application/x-shockwave-flash" width="480" height="381" allowFullScreen="true" allowScriptAccess="always"></embed></object>' -v video id: k6Lg9UXest3kho5p9X provider: dailymotion embed code: <iframe frameborder="0" width="480" height="270" src="http://www.dailymotion.com/embed/video/k6Lg9UXest3kho5p9X"></iframe> This video is still valid
API
extract: takes a video embed code and a list of streaming video types (i.e. like .flv or .mp4) for direct video urls and return the following values:
status: True if vecc has extracted video info, False else. See errno and errmsg for extended info about error
video_id: extracted video ID
provider: recognized provider
clean_code: embeded code
real_link: web browser link to video with player
title: video title string
description: description or text content of the video (string)
image: url link to image preview of video
duration: duration of video in format HH:MM:SS
created_date: when video was published (python date)
errno: if errno > 0: HTTP request error code or specific API error code, if errno == -1: global connection error, i.e. no connection to provider (no internet connection or provider website down), if errno == -2: wrong code format
errmsg: error message related to error code.
Code example
# import extract from vecc library from vecc import extract video_link = 'a video url' video_infos = extract(video_link, ['mp4', 'flv'])
Providers
Video providers (Google video, Youtube, Vimeo, Dailymotion, Facebook…) are configured in the vecc/providers.py file.
Each provider configuration consists of:
name: youtube
link template: string template (that’ll be interpolated with format) used to build the cleaned code. This is the link to the embedded video player. Needs the {video_id} tag.
embed template: string template used to build the new embed code. Needs the {video_link} tag.
validation template: string template used to build the link used to validate that the video is still available. This is the link to the video itself (as seen on the provider’s website). Needs the {video_id} tag.
matches: regular expressions used to “match” a video embed code to a video provider. Must capture the video id.
Changelog
v1.01:
added validation_link option to extract
v1.0:
lots of bugfixes after testing 20000 different video links, first mature version
v0.16:
added created_date info
v0.15:
added facebook API
v0.14:
added streaming providers
v0.13:
added extract function
v0.12:
Fix previous commit that broke vecc.clean
v0.11:
added a timeout parameter for the validation
now uses proper return codes for failures
v0.10:
fix print in py2 following porting to py3
v0.9:
use schema-less urls for the default providers
make travis use tox
provide a wheel package
v0.8:
compatible python 2.6 to python 3.3
100% test coverage
v0.7:
dropped allowfullscreen
added autoPlay=1&related=0 on video links
v0.6:
video size of the cleaned embed code is now 480x395
all embed codes with iframes use the same format with allowfullscreen=”true”, autoPlay=”1”, related=”0”
v0.5:
compatibility with python2.6: argparse as a dependency
v0.4:
compatibility with python2.6: format needs field numbers
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file vecc-1.2.tar.gz
.
File metadata
- Download URL: vecc-1.2.tar.gz
- Upload date:
- Size: 15.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c8286d5600bf8fa8efb2337002043afb01d680dac791ccfb9fcde9662fc8b362 |
|
MD5 | fa6c710561424188b253d89a5d6fd5e5 |
|
BLAKE2b-256 | c6d0abd028caa8ab1a0b71c2e340bcbe07553a5aa4230cfe4af6c25cf729d06b |