InstantCommons is a feature of MediaWiki to allow the usage of any uploaded media file from the Wikimedia Commons in any MediaWiki installation world-wide. InstantCommons-enabled wikis cache Commons content so that it is only downloaded once, and subsequent pageviews load the locally existing copy.
For a list of InstantCommons consumers, see Sites using InstantCommons.
Rationale[edit | edit source]
As of July 2015, Wikimedia Commons, the central media repository hosted by the Wikimedia Foundation, contains over 26 million files. Each of these files is available under a free content license or in the public domain; there are no other restrictions of use beyond those relating to use of official insignia or trademarks. Licenses which limit commercial use are considered non-free.
As awareness of the Commons grows, so does the desire of external parties to use content included therein, and to contribute new material. It is currently technically possible to load images directly from Wikimedia's servers in the context of any webpage. Such hotlinking is allowed, but it is problematic for multiple reasons:
- It does not respect the license terms of the image, and does not allow for other metadata to be reliably transported
- Besides failing to properly credit the author of the media file, it also does not give credit to Wikimedia
- It consumes Wikimedia bandwidth on every pageview (unless the image has been cached on the client side or through a proxy)
- It does not facilitate useful image operations such as thumbnail generation and captioning and is difficult to use in the context of a wiki, particularly for standard layout operations
- It is tied to URLs as resource identifiers, which complicates mirroring
- It creates an untrackable external usage web, where any change on Wikimedia's side necessarily affects these external users
- It does not permit offline viewing, which is crucial in countries which have only intermittent network access.
InstantCommons seeks to address all this by providing an easy method for cached loading of images and metadata from Wikimedia's servers. The first implementation of InstantCommons will be within MediaWiki, allowing for all MediaWiki image operations (thumbnailing, captioning, galleries, etc.) to be performed transparently. However, other wiki engines can implement InstantCommons-like functionality using the API operations described below.
Basic feature set[edit | edit source]
During the installation, the site administrator can choose whether to enable InstantCommons. Ideally, however, the feature should be enabled by default (provided a writable upload directory is specified) to allow the largest possible number of users to use Wikimedia Commons content.
If the feature is enabled, the wiki behaves like a Wikimedia project, that is, if an image or other media file is referred to which exists on Commons, it can be included in a wiki page like a locally uploaded file by specifying its name. Local filenames take precedence over Commons filenames.
Configuration[edit | edit source]
For enabling InstantCommons in MediaWiki version 1.16 or later, it is sufficient to add the line
$wgUseInstantCommons = true;
to your LocalSettings.php (see $wgUseInstantCommons for details).
Debugging[edit | edit source]
If you get errors such as "No file by this name exists", or your local thumbnails become red links, the issue is probably related to HTTPS. Since June 2015, Wikimedia Commons can only be accessed using HTTPS. Older versions of MediaWiki do not automatically connect to Commons over HTTPS, which makes InstantCommons fail.
If InstantCommons does not work, try the following:
- Upgrade to version 1.25.3, 1.24.4 or 1.23.11 (or newer)
- If you cannot upgrade to one of those versions, you can try adding the following snippet to the very bottom of LocalSettings.php:
$wgUseInstantCommons = false; $wgForeignFileRepos = array( 'class' => 'ForeignAPIRepo', 'name' => 'wikimediacommons', 'apibase' => 'https://commons.wikimedia.org/w/api.php', 'hashLevels' => 2, 'fetchDescription' => true, 'descriptionCacheExpiry' => 43200, 'apiThumbCacheExpiry' => 86400, );
- Install the Curl PHP extension. (It is generally more reliable, and more likely to have proper certificates already installed.) On Debian/Ubuntu:
sudo apt-get install php5-curl
- Verify that you have an up-to-date certificate store. If you have the PHP Curl extension installed, follow the instructions here.
- For further details, see T102566.
SElinux[edit | edit source]
If your server OS implements SElinux, please take a look at the dedicated section on the SElinux settings page, and make sure HTTPD scripts and modules can access the network successfully. If SElinux prevents HTTPD scripts and modules from connecting to WikiMedia Commons repository, the InstantCommons feature will simply not work.
Behind a firewall[edit | edit source]
If the server on which the wiki runs is behind a firewall, the wiki server must be granted outgoing http/https requests to commons.wikimedia.org and upload.wikimedia.org, for Instant Commons to work. The IP address ranges are found at wikitech:IP addresses.
Using files via InstantCommons[edit | edit source]
With InstantCommons enabled, you can choose any image from Wikimedia Commons (e.g. this one), click the "Use this file" button (the button with the wiki icon next to) and paste the markup in your wiki. In our example, pasting
[[File:Wikipedia-Marker-commons.svg|thumb|A picture from Wikimedia Commons embedded in this Wiki]]
will render the thumbnail (as can be seen on the right side of this page).
Note that when using files in this way you will still need to respect any licensing and other file use legal requirements - see Commons:Reusing content outside Wikimedia.
Future potential[edit | edit source]
In the future, it may be desirable to offer a publisher/subscribe model of changes, which will require wiki-to-wiki authentication and a database of images which are used in subscribing wikis. This would also open up the threat of cross-wiki vandalism, which could be addressed using a delay phase of 24 hours or more for changes to take effect. Two-way functionality is another possibility, that is, to allow uploading free media directly to Commons from any wiki installation. However, this will require federated authentication as a minimum. It may also necessitate cross-wiki communication facilities to notify users from other wikis about Commons policies, which could be part of a larger project like LiquidThreads.
See also[edit | edit source]
- PhotoCommons: Wordpress plug-in to provide the same functionality