Extension:Video
Video 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 Mainframe98 Universal Omega |
Latest version | 1.9.2 (2023-02-23) |
MediaWiki | 1.39+ |
Database changes | Yes |
License | GNU General Public License 2.0 or later |
Download | README |
Example | Social Tools Development Wiki |
Expand | |
Expand | |
Quarterly downloads | Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin'). |
Public wikis using | Lua error in Module:Extension at line 172: bad argument #1 to 'inNamespace' (unrecognized namespace name 'skin'). |
Translate the Video extension if it is available at translatewiki.net | |
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 providers
- DailyMotion
- Gametrailers
- Google Video
- MetaCafe
- MyVideo
- Sevenload
- South Park Studios
- Viddler
- Vimeo
- WeGame
- YouTube
Installation
- <translate> [[<tvar name=2>Special:ExtensionDistributor/Video</tvar>|Download]] and move the extracted <tvar name=name>
Video
</tvar> folder to your <tvar name=ext>extensions/
</tvar> directory.</translate>
<translate> Developers and code contributors should install the extension [[<tvar name=git>Special:MyLanguage/Download from Git</tvar>|from Git]] instead, using:</translate>cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Video - <translate> Add the following code at the bottom of your <tvar name=1>LocalSettings.php </tvar> file:</translate>
wfLoadExtension( 'Video' );
- <translate> Run the [[<tvar name=update>Special:MyLanguage/Manual:Update.php</tvar>|update script]] which will automatically create the necessary database tables that this extension needs.</translate>
- File:OOjs UI icon check-constructive.svg <translate> Done</translate> – <translate> Navigate to <tvar name=special>Special:Version</tvar> on your wiki to verify that the extension is successfully installed.</translate>
Usage
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"/>
.
The extension also has the functionality to display videos in a gallery format, in similar fashion to the <gallery>
tag. To achieve this, wrap the videos in the <videogallery>
tag.
To-do list/known bugs
- Write the code for supporting 5min.com, Nicovideo and Tangler.com
- 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 Info
Provider classes for different video hosting sites are stored in the providers
directory. Writing a new provider class is easy:
- copy the example provider class into the providers directory and name it accordingly (for example,
ExampleVideo.php
) - autoload the new provider class in Video.php
- add the provider to Video::$providers
- enjoy!
Example provider class
<?php
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 '...';
}
*/
}
File:OOjs UI icon information-progressive.svg | <translate> This extension is included in the following wiki farms/hosts and/or packages:</translate>
<translate> This is not an authoritative list.</translate> <translate> Some wiki farms/hosts and/or packages may contain this extension even if they are not listed here.</translate> <translate> Always check with your wiki farms/hosts or bundle to confirm.</translate> |
- Pages with script errors
- Pages with broken file links
- Beta status extensions
- Extensions without an image
- Special page extensions
- Extensions without a compatibility policy
- Extensions with manual MediaWiki version
- GPL licensed extensions
- Extensions in Wikimedia version control
- ArticleFromTitle extensions
- LoadExtensionSchemaUpdates extensions
- PageDelete extensions
- PageUndelete extensions
- ParserBeforeInternalParse extensions
- ParserBeforePreprocess extensions
- ParserFirstCallInit extensions
- WgQueryPages extensions
- All extensions
- Social tools
- Extensions by ShoutWiki
- Extensions by Fandom
- YouTube extensions
- Video player extensions