Extension:VideoFlash

From MediaWiki.org
Jump to: navigation, search

Script errorImportant! - Please consider using the EmbedVideo Extension instead of this - it supports multiple video sharing sites and is syntactically and functionally superior.

MediaWiki extensions manual
Crystal Clear action run.png
VideoFlash

Release status: beta

Implementation Tag
Description VideoFlash is an extension that displays videos from YouTube, Google Video, Dailymotion, Sevenload, Revver and similar services
Author(s) Alberto Sarullo, SignpostMarv Martin, Frank Forte
Latest version 1.2.4 (2011-03-16)
MediaWiki 1.6.8 or above
Database changes No
License GFDL
Download see below
Tags
<videoflash>

Translate the VideoFlash extension if it is available at translatewiki.net

Check usage and version matrix; code metrics

VideoFlash is an extension that displays videos from YouTube, Google Video, Dailymotion, Sevenload, Revver and similar services based on FLV video format.

This extension is based on Extension:YouTube (Iubito) extension.

Source[edit | edit source]

Copy the following code into extensions/videoflash.php:

<?php
/**
*	last change: 2011-03-16
*       Available under the GFDL (http://www.gnu.org/copyleft/fdl.html) as source code was taken from  http://www.mediawiki.org/wiki/Extension:VideoFlash
*       Modification by SignpostMarv Martin
*       html5 added by Frank Forte
*/ 
 
$wgExtensionFunctions[] = 'wfVideoFlash';
$wgExtensionCredits['parserhook'][] = array(
	'name' => 'VideoFlash',
	'description' => 'Allows to display videos from YouTube, Google Video, Dailymotion, Sevenload, Revver and similar services',
	'author' => 'Alberto Sarullo, SignpostMarv Martin, Frank Forte',
	'version' => '1.2.4',
	'url' => 'https://www.mediawiki.org/wiki/Extension:VideoFlash'
);
 
function wfVideoFlash() {
	global $wgParser;
	$wgParser->setHook('videoflash', 'renderVideoFlash');
}
 
# The callback function for converting the input text to HTML output
function renderVideoFlash($input, $args) {
	// append new services to the array with the key being the intended value of the type attribute on the <videoflash> tag
	$url = array();
	$url['youtube'    ] = 'http://www.youtube.com/v/%1$s?fs=%5$u';
	$url['googlevideo'] = 'http://video.google.com/googleplayer.swf?docId=%1$d';
	$url['dailymotion'] = 'http://www.dailymotion.com/swf/%1$s';
	$url['sevenload'  ] = 'http://en.sevenload.com/pl/%1$s/%2$ux%3$u/swf';
	$url['revver'     ] = 'http://flash.revver.com/player/1.0/player.swf?mediaId=%1$u';
	$url['blip'       ] = 'http://blip.tv/play/%1$s';
	$url['youku'      ] = 'http://player.youku.com/player.php/sid/%1$s/.swf';
	$url['vimeo'      ] = 'http://www.vimeo.com/moogaloop.swf?clip_id=%1$d&amp;server=www.vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0';
	$url['metacafe'   ] = 'http://www.metacafe.com/fplayer/%1$d/' . (isset($args['vid']) ? $args['vid'] : '') . '.swf';
	$url['viddler'    ] = 'http://www.viddler.com/player/%1$s';
	$url['megavideo'  ] = 'http://www.megavideo.com/v/%1$s';
	$url['html5'  ] = '%1$s';
 
	// if the embed code for a service requires flashvars attributes, you can add them here
	$flashvars = array();
	$flashvars['revver'] = 'mediaId=%1$u&affiliateId=0';
 
	$type       = isset($args['type'],$url[$args['type']]) ? $args['type'] : 'youtube';
	$media_url  = isset($url[$type]) ? $url[$type] : $url['youtube'];
	$flash_vars = isset($flashvars[$type]) ? $flashvars[$type] : '';
 
	$input_array = explode('|', htmlspecialchars($input));
	$id     = current($input_array);
	$width  = (count($input_array) > 1 && is_numeric($input_array[1])) ? $input_array[1] : 425;
	$height = (count($input_array) > 2 && is_numeric($input_array[2])) ? $input_array[2] : 350;
	$fullscreen = (isset($args['fullscreen']) ? $args['fullscreen'] : 'true') === 'false' ? false : true;
 
		if(strtolower($type) == 'html5')
		{
			// I recommend CSS to set the video size, i.e. <videoflash type="html5" style="width:200px;height:150px">url</videoflash>
			$output = '<video';
			foreach($args as $attribute=>$value)
			{
				 $output .= ' '.$attribute.'="'.$value.'"';
			}
 
		     $output .= '><source src="'.$id.'"></video><p style="font-size:80%;padding:0;margin:0;">(Right click to control movie)</p>';
		     return $output;
		}
		else
		{
			 $output = '<object width="%2$u" height="%3$u">'
		                .' <param name="movie" value="'.$url[$type].'" />'
		                .' <param name="allowFullScreen" value="%4$s" />'
		                .' <param name="wmode" value="transparent" />'
		                .' <embed src="'.$url[$type] . '" type="application/x-shockwave-flash" wmode="transparent"'
		                .' width="%2$u" height="%3$u" allowfullscreen="%4$s"'
		                        . ' flashvars="' . $flash_vars . '"></embed></object>';
			 return sprintf($output,$id,$width,$height,$fullscreen ? 'true' : 'false', (integer)$fullscreen);
		}
}

Installation[edit | edit source]

  • Create the file videoflash.php and paste the code shown above. Make sure there are no empty lines after the final php exit tag.
  • Upload videoflash.php to your $IP/extensions directory.
  • Add the following lines at the end of LocalSettings.php:
require_once("extensions/videoflash.php");

Usage[edit | edit source]

Youtube[edit | edit source]

Original url: http://www.youtube.com/watch?v=3EszBH3cQqI

Wiki code:

<videoflash>3EszBH3cQqI</videoflash>

or (with width and height):

<videoflash>3EszBH3cQqI|200|100</videoflash>

GoogleVideo[edit | edit source]

Original url: http://video.google.it/videoplay?docid=1811233136844420765

Wiki code:

<videoflash type="googlevideo">1811233136844420765</videoflash>

or (with width and height):

<videoflash type="googlevideo">1811233136844420765|200|150</videoflash>

DailyMotion[edit | edit source]

Original url: http://www.dailymotion.com/video/xi23l_geris-game

Wiki code:

<videoflash type="dailymotion">xi23l</videoflash>

or (with width and height):

<videoflash type="dailymotion">xi23l|640|480</videoflash>

Vimeo[edit | edit source]

Original url: http://vimeo.com/9394817

Wiki code:

<videoflash type="vimeo">9394817</videoflash>

or (with width and height):

<videoflash type="vimeo">9394817|640|480</videoflash>

Sevenload[edit | edit source]

Original url: http://en.sevenload.com/videos/Eh4mjir/Bewegungen-der-Natur

Wiki code:

<videoflash type="sevenload">Eh4mjir</videoflash>

or (with width and height):

<videoflash type="sevenload">Eh4mjir|640|480</videoflash>

Revver[edit | edit source]

Original url: http://one.revver.com/watch/138657

Wiki code:

<videoflash type="revver">138657</videoflash>

or (with width and height):

<videoflash type="revver">138657|640|480</videoflash>

MetaCafe[edit | edit source]

Original url: http://www.metacafe.com/watch/2387062/pump_it/

Wiki code:

<videoflash type="metacafe" vid="pump_it">2387062</videoflash>

or (with width and height):

<videoflash type="metacafe" vid="pump_it">2387062|640|480</videoflash>

Blip[edit | edit source]

Currently blip uses urls like: http://blip.tv/file/1490573

You cannot use the above ID with the code

http://blip.tv/play/$someID

which is used in this VideoFlash extension.

To get the correct ID to use click on 'embed' in Blip and extract the id used in the flash embed code

 <embed src="http://blip.tv/play/AdvpMQA" type="application/x-shockwave-flash" width="640" height="510" allowscriptaccess="always" allowfullscreen="true"></embed>

Wiki code:

<videoflash type="blip">AdvpMQA</videoflash>

note: I don't know why Blip.tv uses different ID's in it's embed code as opposed to it's url. I suspect it may be changing over or something, which is why I haven't suggested editing the code of this extension to use the 'file' rather than the 'play' url for Blip.

Globo Vídeos (Brazil)[edit | edit source]

by alexandre260678@hotmail.com

Add the command line

$url['globovideo']='http://video.globo.com/Portal/videos/cda/player/player.swf?midiaId=%1$u';

the file videoflash.php

Copy the parameter midiaId

  <embed width="480" height="392" flashvars="midiaId=1056877&autoStart=false&width=480&height=392" type="application/x-shockwave-flash" quality="high" src="http://video.globo.com/Portal/videos/cda/player/player.swf"></embed>

Wiki code:

<videoflash type="globovideo">1056877</videoflash>

HTML5[edit | edit source]

by Frank Forte

Adding HTML5 videos (webm, mp4, ovg formats) simply replace the video URL below in your wiki when using videoflash extension.

Wiki code:

<videoflash type="html5" style="width:200px;height:150px;">http://yourwebsite.com/yourvideo.webm</videoflash>

History[edit | edit source]

  • 1.1 - 2007-03-24 - Added Revver support; fixed xss vulnerability (tnx Jimbojw)
  • 1.0 - 2007-01-23 - First release

MediaWiki Version[edit | edit source]

  • Successfully tested on MediaWiki 1.6.9, MediaWiki 1.8.4, MediaWiki 1.9.3, MediaWiki 1.15.0 (for Vimeo) and MediaWiki 1.16.0 (for megavideo)

Full Screen[edit | edit source]

/*******************************************************************************
*                                                                              *
* Simple "View in fullscreen" addon by xiandos.info.                           *
*                                                                              *
* At the end, before the output is returned, add:                              *
*                                                                              *
********************************************************************************/ 
 
if (strstr($type, "googlevideo")){
        $output .= '<p><a href="javascript:void(window.open('
        ."'http://video.google.com/googleplayer.swf?docid="
        .$id           
        ."','GooglePlayer','location=no,menubar=no,scrollbars=auto,status=no,"
        ."toolbar=no,fullscreen=yes,dependent=no,left=1,top=1'))"
        .'">View the video in fullscreen</a></p>';
}
 
        return $output;

Other implementations[edit | edit source]

  • Video Widgets category on MediaWiki widgets site (has all the widgets this extension supports and more)

Wikis using this extension[edit | edit source]

See here. Please add your wiki, too.

See also[edit | edit source]