Warning Warning: This extension is most likely not feature-complete or otherwise suitable for a production-grade site yet! Proceed with caution. Please use Extension:Widgets Extension:YouTube to play external vidoes or Extension:TimedMediaHandler or Extension:EmbedVideo to play locally stored vidoes, unless you're a developer willing to develop this extension further.
MediaWiki extensions manual
OOjs UI icon advanced.svg
Release status: beta
Implementation Special page
Description Allows new Video namespace for embeddable media on supported sites
Author(s) David Pean
Jack Phoenix
John Du Hart
Latest version 1.7.1 (2017-10-29)
MediaWiki 1.30.0+
Database changes Yes
License GNU General Public License 2.0 or later
Example Social Tools Development Wiki
  • addvideo
Translate the Video extension if it is available at translatewiki.net

Check usage and version matrix.

Issues Open tasks · Report a bug

Video is an extension that allows you to import videos from different video services, such as YouTube, DailyMotion or Metacafe. The extension adds two new special pages, Special:AddVideo, which all registered users or other users with 'addvideo' permission can access to add new videos to the site and Special:NewVideos, which lists all recently added videos. The extension also adds ‎<videogallerypopulate> parser hook tag.

Video additions are logged into the video log at Special:Log/video.

This extension was originally written by David Pean for Fandom, Inc. Some code cleanup was done by Łukasz 'TOR' Garczewski and Bartek Łapiński for Fandom, Inc. and by Jack Phoenix for ShoutWiki.

Supported video providersEdit

  1. DailyMotion
  2. Gametrailers
  3. Google Video
  4. MetaCafe
  5. MyVideo
  6. Sevenload
  7. South Park Studios
  8. Viddler
  9. Vimeo
  10. WeGame
  11. YouTube


  • Download and place the file(s) in a directory called Video in your extensions/ folder.
  • Add the following code at the bottom of your LocalSettings.php:
    wfLoadExtension( 'Video' );
  • Run the update script which will automatically create the necessary database tables that this extension needs.
  •   Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.


After adding a video through Special:AddVideo, you can embed it into an article by using the syntax [[Video:Video's Name Here]] or <video name="Video's Name Here"/>.

To-do list/known bugsEdit

  1. Write the code for supporting 5min.com, Nicovideo and Tangler.com
  2. If a video is embeded in a page and this page is later transcluded, it only shows a link to Video:foo and not the embeded video.

Developer InfoEdit

Provider classes for different video hosting sites are stored in the providers directory. Writing a new provider class is easy:

  1. copy the example provider class into the providers directory and name it accordingly (for example, ExampleVideo.php)
  2. autoload the new provider class in Video.php
  3. add the provider to Video::$providers
  4. enjoy!

Example provider classEdit


class ExampleVideoProvider extends BaseVideoProvider {
	// Used to extract the $video_id from the URL
	protected $videoIdRegex = '#/watch/([a-zA-Z0-9_\-]+)/#';
	// Set this to the embed, and use $width, $height and $video_id appropriately
	protected $embedTemplate = '<object width="$width" height="$height"><param name="movie" value="$video_id">...etc';

	 * Gives all domains that this provider should respond to
	 * Second level domains are preferred
	 * @return array
	public static function getDomains() {
		return array( 'example.com' );

	 * Return the aspect ratio for the video player
	 * Just what the player is set to by default: Width / Height
	 * @return float
	protected function getRatio() {
		return 512 / 296;

	 * If there is more complexity to retrieving the $video_id for the embed
	 * code than a single regular expression, override this function.
	 * If you make an HTTP call (eg. to an API) you MUST cache it with $wgMemc
	 * @param string $url URL to extract the ID from
	 * @return bool|null|Object
	protected function extractVideoId( $url ) {
		// Check out HuluVideoProvider or Viddler for an example
	 * Override this function for cases where the HTML embed code is complex
	 * and has special cases.
	 * @return string Raw HTML to display the video
	public function getEmbedCode() {
		return '...';