InstantCommons


InstantCommons es una función de MediaWiki que permite usar cualquier archivo multimedia subido a Wikimedia Commons en cualquier instalación de MediaWiki de todo el mundo.
Justificación
Desde noviembre de 2023, Wikimedia Commons, el repositorio central de archivos multimedia hospedado por la Fundación Wikimedia, contiene más de 100 millones de archivos. Todos y cada uno de estos archivos están disponibles bajo una licencia de contenido libre o bien en el dominio público; no existe ninguna otra restricción que afecte a su uso más allá del posible uso de insignias oficiales o de marcas registradas. Las licencias que limitan la utilización comercial se consideran como no libres.
A medida que crece la popularidad de Commons, también lo hace el deseo por parte de terceros de usar su contenido, y de contribuir con nuevo material. En la actualidad es técnicamente posible cargar imágenes directamente desde los servidores de Wikimedia en el contexto de cualquier página web. El uso de enlaces directos de este modo está permitido, pero resulta problemático por varias razones:
- No respeta los términos de licencia de la imagen, y no permite la transferencia de forma fiable de otra información extra (metadatos) que también sería deseable transferir
- Además de no dar el crédito correspondiente al autor del archivo multimedia, tampoco da ningún reconocimiento a Wikimedia
- Consume ancho de banda de Wikimedia cada vez que se visita una página (a menos que la imagen se haya almacenado en caché en el lado del cliente o mediante un proxy; esta funcionalidad está actualmente deshabilitada de forma predeterminada)
- No facilita ciertas operaciones útiles como pueden ser la generación de miniaturas y añadir un pie de foto a las mismas, y es difícil de usar en el contexto de un wiki, particularmente para operaciones comunes de presentación de contenidos
- Es un sistema atado a los URLs como identificadores de recursos, lo que dificulta el uso de sitios espejo
- Crea una web con un uso de recursos externos no monitorizable, donde cualquier cambio en el lado de Wikimedia afectaría necesariamente a los usuarios externos
- No permite el visionado sin conexión a Internet, algo crucial en países que sólo cuentan con un acceso intermitente a la red.
InstantCommons busca dar solución a todo esto proporcionando un método sencillo para la carga (cacheada) de imágenes y metadatos desde los servidores de Wikimedia. Si bien la funcionalidad de caché es parte del objetivo, esta funcionalidad está desactivada desde MediaWiki 1.27.2/1.28.1. InstantCommons se implementó originalmente en el código de MediaWiki, permitiendo que todas las operaciones de MediaWiki relacionadas con imágenes (miniaturización, añadido de pies de foto, galerías, etc.) pudieran realizarse de forma transparente. Otros motores wiki pueden implementar una funcionalidad similar usando las operaciones a nivel de API que se describen más abajo.
Características básicas
Durante la instalación, la persona que administra el sitio puede decidir si quiere activar InstantCommons. Lo ideal, sin embargo, sería que esta característica estuviese activada por defecto (suponiendo que se indique un directorio para las subidas en el que MediaWiki pueda escribir) para permitir que el mayor número posible de usuarios utilice los contenidos de Wikimedia Commons.
Si la característica está activada, el wiki se comporta como cualquier proyecto de Wikimedia, es decir, si se hace referencia a una imagen o cualquier archivo multimedia que existe en Commons, puede incluirse en una página del wiki como cualquier otro archivo subido de forma local, indicando simplemente su nombre. Si existe un archivo local con ese nombre, tendrá preferencia sobre el contenido de Commons.
Configuración
Método por defecto: $wgUseInstantCommons
Para habilitar InstantCommons en MediaWiki 1.16 y versiones posteriores, basta con agregar esta línea a tu archivo LocalSettings.php (mira $wgUseInstantCommons para más detalles):
$wgUseInstantCommons = true;
InstantCommons clásico con caché local de miniaturas
El método por defecto para habilitar InstantCommons usando $wgUseInstantCommons utiliza miniaturas enlazadas directamente desde Wikimedia.[1]
Esto puede resultar lento y también interferir con el caché de archivos (enlaces rotos).
Si prefieres generar y usar las miniaturas directamente en tu sitio web, no uses $wgUseInstantCommons.
En lugar de esto, inserta este código en LocalSettings.php tal como se describe aquí: Manual:$wgForeignFileRepos#Uso.
$wgForeignFileRepos[] = [
'class' => ForeignAPIRepo::class,
'name' => 'commonswiki', // Debe ser un nombre único
'apibase' => 'https://commons.wikimedia.org/w/api.php',
'hashLevels' => 2,
'fetchDescription' => true, // Opcional
'descriptionCacheExpiry' => 43200, // 12 horas, opcional (en número de segundos)
'apiThumbCacheExpiry' => 86400, // 24 horas, opcional, pero requerido para el caché local de miniaturas
];
Uso de archivos mediante InstantCommons

Teniendo activado InstantCommons, puedes elegir cualquier imagen de Wikimedia Commons (por ejemplo ésta), pulsar el botón "Usar este archivo" (el botón que tiene a su lado un icono
de wiki) y pegar el código en tu wiki.
En nuestro ejemplo, pegar
[[File:Wikipedia-Marker-commons.svg|thumb|Una foto de Wikimedia Commons utilizada en este wiki]]
hará que aparezca la vista en miniatura, tal como puede verse al lado derecho de esta página.
Fíjate en que al usar archivos de este modo, sigues teniendo la obligación de respetar los términos de su licencia y cualquier otro requerimiento legal establecido sobre su uso - mira Commons:Reutilización del contenido fuera de Wikimedia.
Troubleshooting
Set custom user agent
Since 2025, Wikimedia Commons may categorize your wiki as an unidentified origin and throttle or block its requests. This is due to enforcement of the Wikimedia Foundation User-Agent Policy, to mitigate the increase of automated scraping.
Unfortunately, the User-Agent used by InstantCommons did not set any origin. This will be fixed in MediaWiki 1.45 (including MediaWiki 1.39.14+, 1.43.4+, and 1.44.1+). If you encounter a throttling or block message when using InstantCommons, please add the below code snippet to the end of your LocalSettings.php file. This snippet is compatible with MediaWiki 1.34 and later:
$wgUseInstantCommons = false;
$wgForeignFileRepos[] = [
'class' => ForeignAPIRepoWithFixedUA::class,
'name' => 'wikimediacommons',
'apibase' => 'https://commons.wikimedia.org/w/api.php',
'url' => 'https://upload.wikimedia.org/wikipedia/commons',
'thumbUrl' => 'https://upload.wikimedia.org/wikipedia/commons/thumb',
'directory' => $wgUploadDirectory,
'hashLevels' => 2,
'transformVia404' => true,
'fetchDescription' => true,
'descriptionCacheExpiry' => 43200,
'apiThumbCacheExpiry' => 0,
];
class ForeignAPIRepoWithFixedUA extends \ForeignAPIRepo {
public static function getUserAgent() {
global $wgCanonicalServer;
$mediaWikiVersion = 'MediaWiki/' . MW_VERSION;
return "$mediaWikiVersion ($wgCanonicalServer) ForeignAPIRepo/T400881";
}
}
HTTPS
Desde junio de 2015, Wikimedia Commons sólo es accesible por medio de HTTPS. Algunas instalaciones pueden carecer de su almacén de certificados raíz, impidiendo que MediaWiki pueda conectarse a Commons mediante HTTPS. Si InstantCommons deja de funcionar, prueba lo siguiente:
- Instala la extensión php curl (generalmente es más fiable y más probable que disponga de los certificados necesarios ya instalados). En Debian/Ubuntu:
sudo apt-get install php-curl - Asegúrate de que tienes un almacén de certificados al día. Si tienes instalada la extensión de curl para php, sigue las instrucciones de webaware o Talk:InstantCommons#Stop_working.
- La funcionalidad debería entonces estar disponible de forma inmediata. Si no es así, comprueba si la función
curl_exec()de PHP está desactivada en tu servidor web.
SElinux
Si el SO de tu servidor utiliza SElinux, por favor, consulta la sección dedicada en SELinux, y asegúrate de que los scripts y módulos HTTPD pueden acceder a la red. Si SElinux impide que los scripts y módulos HTTPD conecten con el repositorio de Wikimedia Commons, InstantCommons simplemente no funcionará.
Detrás de un cortafuegos
Si el servidor en el que corre el wiki se encuentra detrás de un cortafuegos, el servidor wiki debe disponer de la posibilidad de enviar peticiones http/https a commons.wikimedia.org y upload.wikimedia.org para que InstantCommons funcione. El rango de direcciones IP puede consultarse en wikitech:IP addresses.
If you need to use a proxy to access the internet from behind the firewall, see $wgHTTPProxy.
Véase también
- Manual:$wgForeignFileRepos – para tener la misma funcionalidad que InstantCommons pero descargando de otros wikis
- PhotoCommons – Extensión para Wordpress que proporciona la misma funcionalidad
- Ejemplos de sitios que utilizan InstantCommons
- Extension:QuickInstantCommons