{{TNT|Extension
|name        = EmbedVideo
|license     = MIT
|status      = stable
|type        = parser function
|author      = Alexia E. Smith ([[User:Alexia E. Smith|Alexia E. Smith]]), Andrew Whitworth ([[User:Whiteknight|Whiteknight]]), Jim R. Wilson ([[User:Jimbojw|Jimbojw]]), and Mohammad Derakhshani ([[User:Mderakhs|Mderakhs]])
|version     = 2.7.4
|update      = 2018-07-16
|mediawiki   = 1.25+
|php         = 5.4+
|download    = {{TNT|GithubDownload|HydraWiki|mediawiki-embedvideo}}
|image       = EmbedVideoExample1.jpg
|imagesize   = 350px
|hook1       = ParserFirstCallInit
|description = Adds a parser function called <code>#ev</code> for embedding video clips from popular video sharing services.
|example     = [http://help.gamepedia.com/Extension:EmbedVideo/Example Gamepedia Help Wiki]
|vagrant-role      = embedvideo
}}

The '''EmbedVideo''' extension adds a parser function called <code>#ev</code> for embedding video clips from over 24 popular video sharing services in multiple languages and countries.  It also adds video and audio media handlers to support transforming standard <nowiki>[[File:Example.mp4]]</nowiki> file links into embedded HTML5 <nowiki><video></nowiki> and <nowiki><audio></nowiki> tags.

;Project Homepage: [https://github.com/HydraWiki/mediawiki-embedvideo Documentation at Github]
;Source Code: [https://github.com/HydraWiki/mediawiki-embedvideo Source code at Github]
;Bugs:[https://github.com/HydraWiki/mediawiki-embedvideo/issues issues at Github]
;Licensing: EmbedVideo is released under [http://www.opensource.org/licenses/mit-license.php The MIT License].

<span style="font-weight: bold; color: darkred;">Notice:</span> As of the 2.x series the EmbedVideo extension has a new maintainer and an entirely rewritten code base.  It retains backwards compatibility with EmbedVideo 1.0 and EmbedVideoPlus.

==Installation==

{{TNT|ExtensionInstall
 |registration=required
 |download-link=[https://github.com/HydraWiki/mediawiki-embedvideo/archive/v2.7.3.zip Download]
 |custom-steps=* [[#Configuration|Configure as required]]
}}

==Usage==

=== Media Handler ===
For locally uploaded content the process for displaying it on a page is the same as an image.  [https://www.mediawiki.org/wiki/Help:Images#Syntax See the image syntax documentation] on MediaWiki.org for complete reference on this feature.

This example would display a video in page using a HTML5 <code><nowiki><video></nowiki></code> tag.

<pre><nowiki>[[File:Example.mp4]]</nowiki></pre>

To specify the start and end timestamps in the media use the start and end parameters.  The timestamp can be formatted as one of: ss, :ss, mm:ss, hh:mm:ss, or dd:hh:mm:ss.

<pre><nowiki>[[File:Example.mp4|start=2|end=6]]</nowiki></pre>

=== Tags ===

The EmbedVideo parser function expects to be called in any of the following ways:

====<code>#ev</code> - Classic Parser Tag====
* <code><nowiki>{{#ev:service|id}}</nowiki></code>
* <code><nowiki>{{#ev:service|id|dimensions}}</nowiki></code>
* <code><nowiki>{{#ev:service|id|dimensions|alignment}}</nowiki></code>
* <code><nowiki>{{#ev:service|id|dimensions|alignment|description}}</nowiki></code>
* <code><nowiki>{{#ev:service|id|dimensions|alignment|description|container}}</nowiki></code>
* <code><nowiki>{{#ev:service|id|dimensions|alignment|description|container|urlargs}}</nowiki></code>
* <code><nowiki>{{#ev:service|id|dimensions|alignment|description|container|urlargs|autoresize}}</nowiki></code>
* <code><nowiki>{{#ev:service|id|dimensions|alignment|description|container|urlargs|autoresize|valignment}}</nowiki></code>

However, if needed optional arguments may be left blank by not putting anything between the pipes:
* <code><nowiki>{{#ev:service|id|||description}}</nowiki></code>

====<code>#evt</code> - Parser Tag for Templates====
The <nowiki>#evt</nowiki> parser tag allows for key=value pairs which allows for easier templating and readability.

<pre><nowiki>{{#evt:
service=youtube
|id=https://www.youtube.com/watch?v=pSsYTj9kCHE
|alignment=right
}}</nowiki></pre>

====<code>#evu</code> - Parser Tag for URLs====
The <nowiki>#evu</nowiki> parser tag is like the <nowiki>#evt</nowiki> tag, but its first parameter is a URL that will be parsed to determine the service automatically.

<pre><nowiki>{{#evu:https://www.youtube.com/watch?v=pSsYTj9kCHE
|alignment=right
}}</nowiki></pre>

====<code><embedvideo></code> - Tag Hook====
Videos can easily be embedded with the <nowiki><embedvideo></embedvideo></nowiki> tag hook.  The ID/URL goes as the input between the tags and parameters can be added as the tag arguments.

<pre><nowiki><embedvideo service="youtube">https://www.youtube.com/watch?v=pSsYTj9kCHE</embedvideo></nowiki></pre>

Alternativly, you can also use the service id as the tag (assuming another extension isn't already using this tag).

<pre><nowiki><youtube>https://www.youtube.com/watch?v=pSsYTj9kCHE</youtube></nowiki></pre>


=== Attributes for Parser Tags ===

{| class="wikitable"
|-
! Attribute
! Description
|-
| <code>service="<nowiki>(See Supported Services below.)</nowiki>"</code>
| '''Required:''' yes
:The video service to call.
|-
| <code>id="<nowiki>[id|url]</nowiki>"</code>
| '''Required:''' yes
:The raw ID of the video or URL from the player page.
|-
| <code>dimensions="<nowiki>[WIDTH|WIDTHxHEIGHT|xHEIGHT]</nowiki>"</code>
| '''Required:''' no, '''Default:''' <code>640</code>
:Dimensions in pixels to size the embed container.  The standard format is width x height where either can be omitted, but the <code>x</code> must proceed height to indicate it as the height.
:Examples: <code>480</code>, <code>480x320</code>, <code>x320</code>.  If the height is not provided it will be calculated automatically from the width and service default ratio.
:Some services such as ''Gfycat'' do not have standard heights and should be specified for each embed.  <code>$wgEmbedVideoDefaultWidth</code> can be set in <code>LocalSettings.php</code> to override the default width.
|-
| <code>alignment="<nowiki>[left|center|right|inline]</nowiki>"</code>
| '''Required:''' no, '''Default:''' <code>none</code>
:Align the placement of the video either to the left, centered, or to the right. Inline will allow multiple videos to display side by side without forced line breaks.
|-
| <code>description="<nowiki>[wiki text]</nowiki>"</code>
| '''Required:''' no, '''Default:''' <code>none</code>
:Display a description under the embed container.
|-
| <code>container="<nowiki>[frame]</nowiki>"</code>
| '''Required:''' no, '''Default:''' <code>none</code>
:Specifies the container type to use for the embed.
::<code>frame</code>: Wrap the video player in a Mediawiki thumbnail box.
|-
| <code>urlargs="<nowiki>modestbranding=1&version=3</nowiki>"</code>
| '''Required:''' no, '''Default:''' <code>none</code>
:Allows extra URL arguments to be appended to the generated embed URL.  This is useful for obscure options only supported on one service.
|-
| <code>autoresize="<nowiki>false</nowiki>"</code>
| '''Required:''' no, '''Default:''' <code>true</code>
:Automatically resize videos when their size will cause them to break outside of their container element.
|-
| <code>valignment="<nowiki>[top|middle|bottom|baseline]</nowiki>"</code>
| '''Required:''' no, '''Default:''' <code>none</code>
:Align the vertical placement of the video either to the top, middle, bottom, or baseline of the parent element.  Using this parameter forces the alignment parameter to be inline.
|}

=== Examples ===

[[File:EmbedVideoExample1.jpg|thumb|Example #1]]

For example, a video from YouTube uses the 'youtube' service selector. You can specify either the raw ID:
<pre>{{#ev:youtube|pSsYTj9kCHE}}</pre>
Or specify the full URL:
<pre>{{#ev:youtube|https://www.youtube.com/watch?v=pSsYTj9kCHE}}</pre>



[[File:EmbedVideoExample2.jpg|thumb|Example #2]]






To display the same video as a right aligned large thumbnail with a description:
<pre>{{#ev:youtube|https://www.youtube.com/watch?v=pSsYTj9kCHE|1000|right|Let eet GO|frame}}</pre>

For YouTube to have the video start at a specific time code utilize the urlargs(URL arguments) parameter.  Take the rest of the URL arguments from the custom URL and place them into the urlargs.  Please note that not all video services support extra URL arguments or may have different keys for their URL arguments.
<pre>https://www.youtube.com/watch?v=pSsYTj9kCHE&start=76</pre>
<pre>{{#ev:youtube|https://www.youtube.com/watch?v=pSsYTj9kCHE|||||start=76}}</pre>

URL arguments can be used to chop up a video and loop it:
<pre>https://www.youtube.com/watch?v=pSsYTj9kCHE&start=160&end=180&loop=1</pre>
<pre>{{#ev:youtube|https://www.youtube.com/watch?v=pSsYTj9kCHE|||||start=160&end=180&loop=1}}</pre>

== Support for VideoLink Tags ==

Support for the unmaintained VideoLink extension’s tags has been added since version 2.5.

From the original extension documentation:

<pre>The VideoLink extension allows embedding of YouTube videos in articles; allowing for multiple linked videos to be played in a single embedded video player, first shown when a user clicks on a video link.

The &lt;evlplayer /&gt; specifies where the player should appear within the page, and the {{#vlink}} parser function allows creation of links that load a specific video.</pre>
=== <code>&lt;evlplayer&gt;</code> - Tag Hook for Video Container ===

''Note that the use of the <code>&lt;evlplayer&gt;</code> tag is also acceptable here for backwards compatibility.''

This evlplayer tag is used to position the video player container within the page.

<pre>&lt;evlplayer id=&quot;player id&quot; w=&quot;width&quot; h=&quot;height&quot; class=&quot;class&quot; style=&quot;style&quot;&gt;default content&lt;/evlplayer&gt;</pre>

A default video can be set to fill the container by default instead of default content as well.

<pre>&lt;evlplayer id=&quot;player1&quot; w=&quot;480&quot; h=&quot;360&quot; service=&quot;youtube&quot; defaultid=&quot;pSsYTj9kCHE&quot; /&gt;</pre>

{| class="wikitable"
!width="11%"| Attributes
!width="10%"| Required
!width="23%"| Default
!width="54%"| Description
|-
| id
| no
| default
| An optional unique identifier for this container
|-
| w
| no
| 800
| Width to send to the embedded player when its generated
|-
| h
| no
| achieve 16:9 from width
| Height to send to the embedded player when its generated
|-
| class
| no
|
| Additional CSS class to add to the container div
|-
| style
| no
|
| Additional in-line CSS to apply to the container div
|-
| defaultid
| no
|
| Video ID of default video, if you want a default video.
|-
| service
| no
|
| Service of default video, if you want a default video.
|}

An important caveat to make note of, is that the <code>w</code> and <code>h</code> attributes only effect the video that is being included into the container div, and not the actual container. For styling of the container, please use the <code>class</code> or <code>style</code> attributes.

=== <code>#evl</code> - Parser Function for Video Links ===

''Note that the use of the <code>{{#vlink}}</code> parser function is also acceptable here for backwards compatibility.''

<pre>{{#evl:&lt;video id&gt;|&lt;Link text&gt;&gt;|&lt;video to play&gt;|service=youtube|player=&lt;player id&gt;}}</pre>
In addition to all of the attributes supported by the <code>#evt</code> tag, these specific attributes apply to the <code>#evl</code> (and <code>#vlink</code>) tags. To maintain backwards compatibility, if you do not define a <code>service</code> then <code>youtube</code> is assumed.

{|class="wikitable"
!width="5%"| Attributes
!width="4%"| Required
!width="3%"| Default
!width="86%"| Description
|-
| video id
| yes
| none
| The ID of the video you would like to play or a comma separated list of videos to play. ''Please note that the use of multiple video IDs separated by a semicolon is now deprecated.'' 
|-
| link text
| yes
| none
| The text to display inside the link
|-
| video to play
| no
| none
| The number that represents the video to play from video id if its is a comma separated list of ids.
|-
| player
| no
| ‘default’
| Player container to load video in. ''Note that the ID ‘default’ will only exist if you’ve defined a player with no ID.''
|-
| initial video
| ''deprecated''
|

| In the original VideoLink, this would define what video to play first if multiple videos were define. Please see notes about in <code>video id</code> and <code>start</code>.
|-
| start
| ''deprecated''
| 0:00
| In the original VideoLink, this defined the start time of a video. Since we support multiple video services, this feature can now be replicated with the <code>urlargs</code> parameter. For backwards compatibility, this attribute will be respect on videos with the service <code>youtube</code>.
|}

=== Video link Examples ===

Creating a video list allows video links to create a playlist on the fly using the ''youtube'' and ''youtubevideolist'' service. ''Note: even if you define a service the system will use youtube if a list of videos is provided.''

<pre>&lt;evlplayer id=&quot;player id&quot; w=&quot;width&quot; h=&quot;height&quot; class=&quot;class&quot; style=&quot;style&quot; id=&quot;example-player&quot;&gt;default content&lt;/evlplayer&gt;</pre>
<pre>{{#evl:pSsYTj9kCHE,pSsYTj9kCHE,pSsYTj9kCHE|Play All|player=example-player}}</pre>
<pre>{{#evl:pSsYTj9kCHE,pSsYTj9kCHE,pSsYTj9kCHE|Let eet Go|1|player=example-player}}</pre>
<pre>{{#evl:pSsYTj9kCHE,pSsYTj9kCHE,pSsYTj9kCHE|Let eet Go|2|player=example-player}}</pre>
<pre>{{#evl:pSsYTj9kCHE,pSsYTj9kCHE,pSsYTj9kCHE|Let eet Go|3|player=example-player}}</pre>

== Supported Services ==

As of version 2.x, EmbedVideo supports embedding video content from the following services:
{| class="wikitable"
|-
! Site
! colspan="2"|Service Name(s)
! ID Example
! URL Example(s)
|-
! [https://archive.org/details/movies Archive.org Videos]
| colspan="2"|<code>archiveorg</code>
| <nowiki>electricsheep-flock-244-80000-6</nowiki>
| <nowiki>https://archive.org/details/electricsheep-flock-244-80000-6</nowiki>
  <nowiki>https://archive.org/embed/electricsheep-flock-244-80000-6</nowiki>
|-
! [http://bambuser.com/ Bambuser]
| <code>bambuser</code> - Broadcasts
| <code>bambuser_channel</code> - Channels
| <nowiki>5262334</nowiki>
| <nowiki>http://bambuser.com/v/5262334</nowiki>
|-
! [https://beam.pro/ Beam]
| colspan="2"|<code>beam</code> - Streams
| <nowiki>RocketBear</nowiki>
| <nowiki>https://beam.pro/RocketBear</nowiki>
|-
! [http://www.bing.com/videos/ Bing]
| colspan="2"|<code>bing</code>
| <nowiki>31ncp9r7l</nowiki>
| <nowiki>http://www.bing.com/videos/watch/video/adorable-cats-attempt-to-eat-invisible-tuna/31ncp9r7l</nowiki>
|-
! [http://www.blip.tv/ Blip.tv]
| colspan="2"|<code>blip</code> - Blip requires the full URL to the video page and does not accept the raw ID.
|
|<nowiki>http://blip.tv/vinylrewind/review-6864612</nowiki>
|-
! [https://media.ccc.de/ C3TV]
| colspan="2"|<code>mediacccde</code>
| <nowiki>32c3-7305-quantum_cryptography</nowiki>
| <nowiki>https://media.ccc.de/v/32c3-7305-quantum_cryptography</nowiki>
|-
! [http://www.collegehumor.com/ CollegeHumor]
| colspan="2"|<code>collegehumor</code>
| <nowiki>6875289</nowiki>
| <nowiki>http://www.collegehumor.com/video/6875289/batman-says-his-goodbyes</nowiki>
|-
! [http://www.dailymotion.com/ Dailymotion]
| colspan="2"|<code>dailymotion</code>
| <nowiki>x1adiiw_archer-waking-up-as-h-jon-benjamin_shortfilms</nowiki>
| <nowiki>http://www.dailymotion.com/video/x1adiiw_archer-waking-up-as-h-jon-benjamin_shortfilms</nowiki>
|-
! [http://tvpot.daum.net/ Daum TVPot]
| colspan="2"|<code>tvpot</code> - Obtain the URL or ID from the share menu URL.
| <nowiki>s9011HdLzYwpLwBodQzCHRB</nowiki>
| <nowiki>http://tvpot.daum.net/v/s9011HdLzYwpLwBodQzCHRB</nowiki>
|-
! [http://www.divshare.com Div Share]
| colspan="2"|<code>divshare</code>
|
|
|-
! [http://edutopia.org Edutopia]
| colspan="2"|Edutopia content moved to YouTube.  Please use the youtube service selector below.
|
|
|-
! [http://www.funnyordie.com/ FunnyOrDie]
| colspan="2"|<code>funnyordie</code>
| <nowiki>c61fb67ac9</nowiki>
| <nowiki>http://www.funnyordie.com/videos/c61fb67ac9/to-catch-a-predator-elastic-heart-edition</nowiki>
|-
! [http://gfycat.com/ Gfycat]
| colspan="2"|<code>gfycat</code>
| <nowiki>BruisedSilentAntarcticfurseal</nowiki>
| <nowiki>http://www.gfycat.com/BruisedSilentAntarcticfurseal</nowiki>
|-
! [http://www.hitbox.tv/ Hitbox]
| colspan="2"|<code>hitbox</code>
| <nowiki>Washuu</nowiki>
| <nowiki>http://www.hitbox.tv/Washuu</nowiki>
|-
! [https://www.jwplayer.com/ JW Player]
| colspan="2"|<code>jwplayer</code>
| <nowiki>cr5d8nbu-8ZpoNmmJ</nowiki>
| <nowiki>https://content.jwplatform.com/players/cr5d8nbu-8ZpoNmmJ.html</nowiki>
|-
! [http://www.kickstarter.com/ Kickstarter]
| colspan="2"|<code>kickstarter</code>
| <nowiki>elanlee/exploding-kittens</nowiki>
| <nowiki>https://www.kickstarter.com/projects/elanlee/exploding-kittens</nowiki>
|-
! [http://www.metacafe.com/ Metacafe]
| colspan="2"|<code>metacafe</code>
| <nowiki>11404579</nowiki>
| <nowiki>http://www.metacafe.com/watch/11404579/lan_party_far_cry_4/</nowiki>
|-
! [http://www.nicovideo.jp/ Nico Nico Video]
| colspan="2"|<code>nico</code>
| <nowiki>sm24394325</nowiki>
| <nowiki>http://www.nicovideo.jp/watch/sm24394325</nowiki>
|-
! [http://rutube.ru/ RuTube]
| colspan="2"|<code>rutube</code>
| <nowiki>b698163ccb67498db74d50cb0f22e556</nowiki>
| <nowiki>http://rutube.ru/video/b698163ccb67498db74d50cb0f22e556/</nowiki>
|-
! [http://soundcloud.com/ SoundCloud]
| colspan="2"|<code>soundcloud</code>
| <nowiki>use full url</nowiki>
| <nowiki>https://soundcloud.com/skrillex/skrillex-rick-ross-purple-lamborghini</nowiki>
|-
! [http://teachertube.com TeacherTube]
| colspan="2"|<code>teachertube</code>
| <nowiki>370511</nowiki>
| <nowiki>http://www.teachertube.com/video/thats-a-noun-sing-along-hd-version-370511</nowiki>
|-
! [http://www.ted.com/talks/browse/ TED Talks]
| colspan="2"|<code>ted</code>
| <nowiki>bruce_aylward_humanity_vs_ebola_the_winning_strategies_in_a_terrifying_war</nowiki>
| <nowiki>http://www.ted.com/talks/bruce_aylward_humanity_vs_ebola_the_winning_strategies_in_a_terrifying_war</nowiki>
|-
! [https://tubitv.com Tubi TV]
| colspan="2"|<code>tubitv</code>
| <nowiki>318409</nowiki>
| <nowiki>http://tubitv.com/video/318409</nowiki>
|-
! [http://www.tudou.com/ Tudou]
| colspan="2"|<code>tudou</code>
| <nowiki>mfQXfumwiew</nowiki>
| <nowiki>http://www.tudou.com/listplay/mfQXfumwiew.html</nowiki>
|-
! [http://www.twitch.tv Twitch]
| <code>twitch</code> - Live Streams
| <code>twitchvod</code> - Archived Videos on Demand
| <nowiki>twitchplayspokemon</nowiki>
| <nowiki>http://www.twitch.tv/twitchplayspokemon</nowiki>
|-
! [http://89.160.51.62/recordme/spelain.htm Videomaten]
| colspan="2"|<code>videomaten</code>
|
|
|-
! [http://www.vimeo.com Vimeo]
| colspan="2"|<code>vimeo</code>
| <nowiki>105035718</nowiki>
| <nowiki>http://vimeo.com/105035718</nowiki>
|-
! [http://vine.co Vine]
| colspan="2"|<code>vine</code>
| <nowiki>h2B7WMtuX2t</nowiki>
| <nowiki>https://vine.co/v/h2B7WMtuX2t</nowiki>
|-
! [http://screen.yahoo.com/ Yahoo Screen]
| colspan="2"|<code>yahoo</code>
| <nowiki>katy-perry-dances-sharks-2015-024409668</nowiki>
| <nowiki>https://screen.yahoo.com/videos-for-you/katy-perry-dances-sharks-2015-024409668.html</nowiki>
|-
! [http://www.youtube.com/ YouTube]
| <code>youtube</code> - Single Videos
| <code>youtubeplaylist</code> - Playlists
| <code>youtubevideolist</code> - Video List
| <nowiki>pSsYTj9kCHE</nowiki>
| <nowiki>https://www.youtube.com/watch?v=pSsYTj9kCHE</nowiki>
  <nowiki>https://www.youtube.com/watch?v=CW_PbErQ_c8&list=PL76E80C7F756A2047</nowiki>
  <nowiki>https://www.youtube.com/watch?v=CW_PbErQ_c8&playlist=CW_PbErQ_c8,CW_PbErQ_c8</nowiki>
|-
! [http://www.youku.com/ Youku]
| colspan="2"|<code>youku</code>
| <nowiki>XODc3NDgzMTY4</nowiki>
| <nowiki>http://v.youku.com/v_show/id_XODc3NDgzMTY4.html</nowiki>
|-
|}

==Configurations==

{| class="wikitable"
|--
! Variable
! Default Value
! Description
|--
| <code>$wgEmbedVideoAddFileExtensions</code>
| <code>true</code>
| Boolean - Enable or disable adding video/audio file extensions to the list of allowable files to be uploaded.
|--
| <code>$wgEmbedVideoEnableVideoHandler</code>
| <code>true</code>
| Boolean - Enable or disable the video media handlers for displaying embedded video in articles.
|--
| <code>$wgEmbedVideoEnableAudioHandler</code>
| <code>true</code>
| Boolean - Enable or disable the audio media handlers for displaying embedded audio in articles.
|--
| <code>$wgEmbedVideoDefaultWidth</code>
| <code>''</code>
| Integer - Globally override the default width of video players.  When not set this uses the video service's default width which is typically 640 pixels.
|--
| <code>$wgEmbedVideoMinWidth</code>
| <code>''</code>
| Integer - Minimum width of video players.  Widths specified below this value will be automatically bounded to it.
|--
| <code>$wgEmbedVideoMaxWidth</code>
| <code>''</code>
| Integer - Maximum width of video players.  Widths specified above this value will be automatically bounded to it.
|--
| <code>$wgFFmpegLocation</code>
| <code>/usr/bin/ffmpeg</code>
| String - Set the location of the ffmpeg binary.
|--
| <code>$wgFFprobeLocation</code>
| <code>/usr/bin/ffprobe</code>
| String - Set the location of the ffprobe binary.
|}

==Version history==
; v2.7.4
* Added support for playlist to evlplayer
* Added support for youtube video list
* Updated Documentation for evlplayer
* Added missing dependency for evlplayer in extension.json

; v2.7.3
* Default Twitch VOD to autoplay=false by default
* Allow videos to be sized in 1:1 aspect ratios for special use cases.

; v2.7.2
* Added feature to evlplayer to allow default video content

; v2.7.1
* Fixed issue with youku videos not embedding properly on https enabled wikis.

; v2.7.0
* Added SoundCloud support
* Added ability to use service name as a parser tag (if not defined previously)

; v2.6.1
* Added new configuration options to disable adding media handlers and file extensions.
** https://github.com/HydraWiki/mediawiki-embedvideo/issues/76
* Fixed an uninitialized array.
** https://github.com/HydraWiki/mediawiki-embedvideo/issues/77
* Fixed undefined indexes in the AudioHandler class.
** https://github.com/HydraWiki/mediawiki-embedvideo/issues/78
* Fixed class properties that were unintentionally declared as static.
** https://github.com/HydraWiki/mediawiki-embedvideo/issues/75
* Fixed RTL language issues with CSS.
** https://github.com/HydraWiki/mediawiki-embedvideo/pull/73

; v2.6.0
* Added support for vertically aligning videos.
* Improved sizing of video and audio tags in Chrome and Firefox when using the media handler tags.
* Fixed an undefined variable.
** https://github.com/HydraWiki/mediawiki-embedvideo/issues/71

; v2.5.2
* If ffmpeg is not installed on the server the FFProbe class will no longer attempt to use and instead just return generic descriptions.
* Fixed properties on FFProbe being incorrectly declared as static.
* Fixed issues with not returning generic descriptions when the local file being accessed by ffprobe is not readable.

; v2.5.1
* Added URL argument support to Twitch services.

; v2.5.0
* Added support for VideoLink tags
* Support for Disclose.tv added
* Twitch VOD support updated.
* Added <nowiki>#evu</nowiki> parser tag

; v2.4.1
* Merged Sophivorus' improvements and fixes.
** Support for TubiTV.com with the tubitv service identifier.
** Fixed vimeo aspect ratio.
** Fixed dailymotion ID regex.
* Fixed error messages being double parsed.

; v2.4.0
* New media handlers to embed locally uploaded video and audio files.
** Requires ffmpeg and ffprobe binaries to be installed.
** Uses HTML5 <nowiki><video></nowiki> and <nowiki><audio></nowiki> tags.
* Two new settings:
** $wgFFmpegLocation - Set the location of the ffmpeg binary.
** $wgFFprobeLocation - Set the location of the ffprobe binary.

; v2.3.3
* Support for JW Player.

; v2.3.2
* Fix auto resize breaking when leaving full screen.

; v2.3.1
* Fixed issue #54 (EmbedVideo doesn't work with mw-collapsible class)
* Fixed issue #50 ("arg" should be "args" in addService)
* Added "inline" alignment option
* Fixed center alignment option css
* Auto Resize now targets mobile as well

; v2.3.0
* Hard cut off of support for versions older then MediaWiki 1.25
* Auto Resize attribute added
* Reverted array_key_exists() regression to fix the <code><nowiki><embedvideo></nowiki></code> tag being broken.

; v2.2.9
* Fixed issue with Twitch.tv switching over to HTTPS.
* [https://github.com/HydraWiki/mediawiki-embedvideo/pull/52 Added support for http://media.ccc.de]
* [https://github.com/HydraWiki/mediawiki-embedvideo/pull/46 New services can now be added from other extensions programmatically.]

; v2.2.8
* [https://github.com/HydraWiki/mediawiki-embedvideo/pull/38 Support for Daum TVPot]
* [https://github.com/HydraWiki/mediawiki-embedvideo/pull/40 Fix for URL arguments for youtube and youtubeplaylist].
* Support for Beam.pro.
* Support for Hitbox.tv.

; v2.2.7
* [https://github.com/HydraWiki/mediawiki-embedvideo/pull/35 Compatible with MediaWiki 1.24.0+]

; v2.2.6
* NicoNico Video ID fixes; will work with new ID formats.

; v2.2.5
* XSS flaws reported by [https://github.com/Mischanix/ Mischanix].

; v2.2.4
* Fix Bing to work with their new URLs.
* Remove MSN as their new video service does not support embedding.
* Standardize Tudou support per their wiki.

; v2.2.3
* Added support for Youku and Tudou.

; v2.2.2
* Updated regular expression replacement pattern for Twitch URLs.  Old Twitch embed URLs do not automatically redirect.

; v2.2.1
* Fixed E_NOTICE being thrown for [https://github.com/HydraWiki/mediawiki-embedvideo/issues/25 undefined array indexes].
* Back ported some [https://github.com/HydraWiki/mediawiki-embedvideo/issues/23 PHP 5.3 compatibility changes].  Please note that future releases of EmbedVideo may not support PHP 5.3 as it is an outdated version.  Upgrading to PHP 5.4 at a minimum is recommended.

; v2.2.0
* Fixed a bug with alignment that would cause the left align to not work similar to how MediaWiki handles images and other media.
* New parser tag better suited for templates; #evt.
* New HTML like tag format that can take parameters.

; v2.1.0
* The width parameter was changed to dimensions.  See parameter documentation above.
* New container parameter to use a standard MediaWiki thumb frame or default to a generic container.
* The description parameter no longer forces the thumb frame to be used.
* Added support for Archive.org, Blip.tv, CollegeHumor, Gfycat, Nico Nico Video, TED Talks, and Vine.
* Ability to center align embeds.
* CSS resource module.

; v2.0
* URLs from the player pages that contain the raw video ID can now be used as the ID parameter.
* Validation of the raw IDs is improved.
* Code base rewritten to have a VideoService class for future extensibility.
* Switched to HTML5 iframes wherever possible for embeds.
* All services overhauled to be up to date and working.
* The 'auto' and 'center' alignment values were removed as they were not working.  They are planned to be implement properly in the future.

==Developer Notes==

The major benefit of using a parser function as the injection mechanism for video clips (as opposed to an extension tag) is that parser functions can utilize template parameters (of the form <code><nowiki>{{{1}}}</nowiki></code>).

For example, say you found yourself making a lot of YouTube videos in thumbnail size, right-aligned like an image.  You might make a template called <code>Template:Youtube_tn</code> which could contain this:
<pre>
<div class="thumb tright">
{{#ev:youtube|{{{1}}}|{{{2|100}}}}}
</div>
</pre>

And then call it like this:
<pre>
{{youtube tn|someYoutubeId}}
</pre>

===Reporting Bugs===

There is an issue tracker set up on the [https://github.com/HydraWiki/mediawiki-embedvideo/issues Github project page].

===Contributing===

Bug reports, feature requests, and patches are always welcome.  New contributors can be added to the Github project if there is sufficient interest.

==Weblinks==

* [http://help.gamepedia.com/Extension:EmbedVideo/Example Gamepedia Help Wiki] / [http://fr.wikimini.org/wiki/Aide:Ins%C3%A9rer_une_vid%C3%A9o French] / [http://krefeld-wiki.de/wiki/Hilfe:Video German]

[[Category:Video player extensions]]
[[Category:YouTube extensions]]
