starcitizenwiki / embedvideo
Adds a parser function embedding video from popular sources.
Installs: 4 717
Dependents: 0
Suggesters: 0
Security: 0
Stars: 27
Watchers: 5
Forks: 17
Open Issues: 14
Type:mediawiki-extension
Requires
- php: >=8.0.0
- composer/installers: >=1.0.1
Requires (Dev)
README
Extension Embed Video
The EmbedVideo Extension is a MediaWiki extension which adds a parser function called #ev
and various parser tags like <youtube>
for embedding video clips from various video sharing services.
It also adds video and audio media handlers to support transforming standard [[File:Example.mp4]]
file links into embedded HTML5 <video>
and <audio>
tags.
This privacy enhanced fork adds a toggleable setting that only loads external content after the user gave explicit consent by clicking the video.
Do note that thumbnails are still fetched from the respective service, which results in a connection to an external url. This behaviour can be disabled by setting $wgEmbedVideoFetchExternalThumbnails
to false
.
Issues, bug reports, and feature requests may be created at the issue tracker:
https://github.com/StarCitizenWiki/mediawiki-extensions-EmbedVideo/issues
The original MediaWiki extension page is located at:
https://www.mediawiki.org/wiki/Extension:EmbedVideo
History
Large parts of the codebase are taken from Extension:EmbedVideo v2.9.0.
License
EmbedVideo is released under the MIT license
http://www.opensource.org/licenses/mit-license.php
See LICENSE for more details
Installation
Download
There are three places to download the EmbedVideo extension. The first is directly from its GitHub project page, where active development takes place. If you have git, you can use this incantation to check out a read-only copy of the extension source:
git clone https://github.com/StarCitizenWiki/mediawiki-extensions-EmbedVideo.git
Downloadable archive packages for numbered releases will also be available from the github project page.
Installation Instructions
- Download the contents of the extension, as outlined above.
- Create an EmbedVideo folder in the extensions/ folder of your MediaWiki installation.
- Copy the contents of this distribution into that folder
- Install FFmpeg, when using the local video handler (enabled by default)
Add the following line to your LocalSettings.php:
wfLoadExtension("EmbedVideo");
Usage
Media Handler
For locally uploaded content the process for displaying it on a page is the same as an image. 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 <video>
tag.
[[File:Example.mp4]]
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.
[[File:Example.mp4|start=2|end=6]]
Additionally, a cover image can be set for video files by specifying a cover=
key.
[[File:Example.mp4|start=2|end=6|poster=File:LocalFile.png]]
Example
Example of a local file with a custom cover image.
Available options
The following options are available when using the media handler for local files.
Options are added to the wikitext like |poster=File:...
or |start=2
.
- loop
- Loops the audio / video
- autoplay
- Automatically plays the file
- nocontrols
- Disables the control elements
Options only available for video files:
- poster / cover
- Sets a local image file as the cover of the video
- muted
- Mutes the audio track of the video (required for autoplay)
- gif
- Special option that sets autoplay, muted, loop and nocontrols e.g. makes the video behave like a gif
When $wgEmbedVideoUseEmbedStyleForLocalVideos
is enabled two additional options are available
- title
- Title of the video
- description
- Description shown below the video
Tags
The EmbedVideo parser function expects to be called in any of the following ways:
#ev - Classic Parser Tag
{{#ev:service|id}}
{{#ev:service|id|dimensions}}
{{#ev:service|id|dimensions|alignment}}
{{#ev:service|id|dimensions|alignment|description}}
{{#ev:service|id|dimensions|alignment|description|container}}
{{#ev:service|id|dimensions|alignment|description|container|urlargs}}
However, if needed optional arguments may be left blank by not putting anything between the pipes:
{{#ev:service|id|||description}}
Alternatively each parameter can be used in any order as a named parameter. The following parameter are available:
id
dimensions
alignment
description
container
urlArgs
autoresize
- Set
|autoresize=true
to have the embed automatically use all available width of the parent element
- Set
vAlignment
width
height
poster
/cover
- This only has an effect if
$wgEmbedVideoRequireConsent
is set to true
- This only has an effect if
title
- This only has an effect if
$wgEmbedVideoRequireConsent
is set to true
- This only has an effect if
Do note mixing named and unnamed parameters will require you to add all unnamed parameters (and blanks) in the previously mentioned order.
E.g. using named id and unnamed description {{#ev:service||||This is the Description|id=abc}}
/ {{#ev:service|id=abc|||This is the Description}}
#evu - Embed Video Url
The {{#evu}}
parser function tries to extract the service from the host name of an url.
It takes the same arguments as {{#ev}}
.
#evl - Embed Video Link
The support for {{#evl}} / {{#vlink}}
and <evlplayer> / <vplayer>
has been added with version 3.4.0.
The link parser function takes the following arguments:
id
- Video IDtext
- Link Textplayer
- ID of the<evlplayer>
if multiple exist on a pageservice
- Name of the embed service, defaults to YouTube
Named arguments can be passed in any order, unnamed args must be passed in the order defined above.
<evlplayer> / <vplayer>
The corresponding player that plays the videos defined by {{#evl}}
links.
Note that this implementation differs from EmbedVideo v2.x in the following areas:
- No
default content
is supported, i.e. text inside the tags - A default video id should be defined, else the player displays a blank embed
- In the old implementation nothing was shown
- No
style
attribute can be set - Video lists are not supported
Example
<evlplayer w="width" h="height" class="class" id="example-player" defaultid="pSsYTj9kCHE"></evlplayer>` {{#evl:21X5lGlDOfg|NASA Live|player=example-player}}` {{#evl:6ZFbXIJkuI1dVNWvzJzown|text=Spotify Track|service=spotifytrack|player=example-player}}
Shows a YouTube embed for the video pSsYTj9kCHE
and two video links, one for another YouTube video (NASA Live) and a Spotify track.
Examples
SharePoint
For more information on SharePoint embeds see Issue #60.
YouTube Examples
YouTube Example #1
For example, a video from YouTube use the 'youtube' service selector enter the raw ID:
{{#ev:youtube|pSsYTj9kCHE}}
Or the full URL:
{{#ev:youtube|https://www.youtube.com/watch?v=pSsYTj9kCHE}}
YouTube Example #2
To display the same video as a right aligned large thumbnail with a description:
{{#ev:youtube|https://www.youtube.com/watch?v=pSsYTj9kCHE|1000|right|Example description|frame}}
YouTube Example #3
Creating a video list for Youtube. This allows you to queue a set of video in a temporary playlist. Use the youtubevideolist
service selector:
{{#ev:youtubevideolist|-D--GWwca0g|||||playlist=afpRzcAAZVM,gMEHZPZTAVc,lom_plwy9iA,BSWYMQEQhEo,EREaWhXj4_Q}}
YouTube Example #4
Using the service name as a parser tag
<youtube>https://www.youtube.com/watch?v=eAORm-8b1Eg</youtube>
YouTube Example #5
Using a local file as an embed thumbnail
{{#ev:youtube|pSsYTj9kCHE|poster=File:LocalFile.jpg}}
YouTube Example #6
Using a local file as an embed thumbnail and specifying a title
{{#ev:youtube|pSsYTj9kCHE|poster=File:LocalFile.jpg|title=Title of the Embed}}
YouTube Example #7
Using named parameters
{{#ev:youtube|id=pSsYTj9kCHE|dimensions=320x320}}
YouTube Example #8
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.
https://www.youtube.com/watch?v=pSsYTj9kCHE&start=76
{{#ev:youtube|https://www.youtube.com/watch?v=pSsYTj9kCHE|||||start=76}}
or
{{#ev:youtube|pSsYTj9kCHE|||||start=32}}
or
{{#ev:youtube|id=pSsYTj9kCHE|urlArgs=start=32}}
or
{{#ev:youtube|id=pSsYTj9kCHE|urlArgs=start=32&end=42}}
Supported Services
As of version 3.x, EmbedVideo supports embedding video content from the following services:
New Services
New services can be requested by using the following link or clicking New Issue
.
Configuration Settings
Credits
The original version of EmbedVideo was written by Jim R. Wilson. Additional major upgrades made by Andrew Whitworth, Alexia E. Smith, and other contributors.
See CREDITS for details