LecteurMedia API Library

Librairie pour l'intégration de médias sur des forums

Stan na 01-11-2025. Zobacz najnowsza wersja.

Ten skrypt nie powinien być instalowany bezpośrednio. Jest to biblioteka dla innych skyptów do włączenia dyrektywą meta // @require https://update.greasyfork.org/scripts/554422/1687596/LecteurMedia%20API%20Library.js

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Greasemonkey lub Violentmonkey.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, wymagana jest instalacje jednego z następujących rozszerzeń: Tampermonkey, Violentmonkey.

Aby zainstalować ten skrypt, wymagana będzie instalacja rozszerzenia Tampermonkey lub Userscripts.

You will need to install an extension such as Tampermonkey to install this script.

Aby zainstalować ten skrypt, musisz zainstalować rozszerzenie menedżera skryptów użytkownika.

(Mam już menedżera skryptów użytkownika, pozwól mi to zainstalować!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Będziesz musiał zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

Musisz zainstalować rozszerzenie menedżera stylów użytkownika, aby zainstalować ten styl.

(Mam już menedżera stylów użytkownika, pozwól mi to zainstalować!)

Autor
FaceDePet
Wersja
0.0.1.20251101165342
Utworzono
01-11-2025
Zaktualizowano
01-11-2025
Rozmiar
185 KB
Licencja
Brak licencji

API LecteurMedia

Une librairie JavaScript conçue pour être intégrée dans des userscripts afin d'analyser le DOM et d'intégrer des lecteurs multimédias à la place des liens.

1. Installation

Pour utiliser cette librairie, ajoutez la ligne suivante dans l'en-tête // ==UserScript== de votre projet :

// @require https://greasyfork.org/scripts/497166-lecteur-media-api-library/code/Lecteur%20Media%20API%20Library.js

N'oubliez pas d'ajouter les permissions @grant nécessaires. Au minimum :

  • // @grant GM_addStyle

Si vous utilisez des providers qui font des requêtes réseau, vous aurez besoin de :

  • // @grant GM.xmlHttpRequest (ou GM_xmlhttpRequest)
  • Une ou plusieurs directives // @connect (voir la section 3).

2. Initialisation et Utilisation

L'API s'utilise en créant une nouvelle instance de la classe LecteurMedia. Le constructeur accepte un objet d'options pour sélectionner les providers que vous souhaitez activer.

Choix des Providers

Vous avez plusieurs façons de spécifier les providers à charger, via l'option providers dans le constructeur.

Méthode A : Charger tous les providers (Comportement par défaut)

C'est la méthode la plus simple, mais elle nécessite la permission @connect *.

// ==UserScript==
// ...
// @connect *
// ...
// ==/UserScript==

const lecteur = new window.LecteurMedia(); // Pas d'options = 'all'
lecteur.processNode(document.body);

Méthode B : Charger des catégories de providers

C'est l'approche recommandée pour un contrôle fin des permissions. Il existe trois catégories :

  • 'base' : Providers qui ne nécessitent aucune permission @connect.
  • 'connect' : Providers qui nécessitent des permissions @connect vers des domaines spécifiques (ex: api.vxtwitter.com).
  • 'wildcard' : Providers qui nécessitent @connect * (ex: aperçu d'articles).

// Charger uniquement les providers sûrs, sans @connect
const lecteurBase = new window.LecteurMedia({ providers: 'base' });
lecteurBase.processNode(document.body);

// Charger les providers sûrs ET ceux nécessitant une connexion spécifique
const lecteurConnect = new window.LecteurMedia({ providers: ['base', 'connect'] });
lecteurConnect.processNode(document.body);

Méthode C : Charger une liste de providers par leur nom

C'est la méthode la plus précise. Vous ne chargez que ce dont vous avez besoin.

// Charger uniquement YouTube, Twitter et Discord
const lecteurPerso = new window.LecteurMedia({
    providers: ['YouTube', 'Twitter', 'Discord']
});
lecteurPerso.processNode(document.body);

Méthodes principales

  • new LecteurMedia(options) : Crée une nouvelle instance du lecteur avec la configuration spécifiée.
  • instance.processNode(element) : Analyse un élément du DOM et ses enfants pour trouver et remplacer les liens par des lecteurs intégrés.
  • instance.addProvider(providerObject) : Ajoute dynamiquement un ou plusieurs providers à une instance existante.

3. Gérer les Permissions @connect

Pour savoir quelles lignes // @connect ajouter à votre script, la librairie expose une fonction utilitaire très pratique : window.LecteurMedia.getRequiredConnects(options).

Comment l'utiliser ?

  1. Créez un userscript temporaire avec le @require de la librairie.
  2. Ouvrez la console de votre navigateur sur n'importe quelle page.
  3. Exécutez la fonction avec les mêmes options que celles que vous utiliserez dans votre script final.

Exemple 1 : Obtenir les @connect pour les catégories 'base' et 'connect'

const connects = window.LecteurMedia.getRequiredConnects({ providers: ['base', 'connect'] });
console.log(connects.join('\n'));

Résultat dans la console :

// @connect      api.vxtwitter.com
// @connect      vm.tiktok.com
// @connect      vt.tiktok.com
// @connect      v.tiktok.com
// @connect      t.tiktok.com
// @connect      api.streamable.com
// @connect      facebook.com
// @connect      www.reddit.com
// @connect      soundcloud.com
// @connect      www.flickr.com
// @connect      gph.is
// @connect      maps.app.goo.gl
// @connect      backend.deviantart.com
// @connect      www.deviantart.com
// @connect      api.gyazo.com
// @connect      tenor.com
// @connect      postimg.cc
// @connect      ibb.co
// @connect      *.bandcamp.com
// @connect      distrokid.com
// @connect      discord.com
// @connect      api.stackexchange.com

Exemple 2 : Obtenir les @connect pour 'YouTube', 'Twitter' et 'Discord'

const connects = window.LecteurMedia.getRequiredConnects({ providers: ['YouTube', 'Twitter', 'Discord'] });
console.log(connects.join('\n'));

Résultat dans la console :

// @connect      api.vxtwitter.com
// @connect      discord.com

Copiez-collez simplement les lignes générées dans l'en-tête de votre userscript.

4. Exemple complet

Voici un script qui charge les lecteurs YouTube, Twitter et Discord.

// ==UserScript==
// @name         Mon Script avec Lecteur Média
// @namespace    http://tampermonkey.net/
// @version      1.0
// @match        https://mon-site-cible.com/*
// @grant        GM_addStyle
// @grant        GM.xmlHttpRequest
// @require      https://greasyfork.org/scripts/497166-lecteur-media-api-library/code/Lecteur%20Media%20API%20Library.js
// @connect      api.vxtwitter.com
// @connect      discord.com
// ==/UserScript==

(function() {
    'use strict';

    if (typeof window.LecteurMedia === 'undefined') {
        console.error('La librairie Lecteur Media n\'a pas pu être chargée.');
        return;
    }

    // Initialise le lecteur avec une sélection de providers
    const lecteur = new window.LecteurMedia({
        providers: ['YouTube', 'Twitter', 'Discord']
    });

    // Scanne la page entière au chargement
    lecteur.processNode(document.body);

    // Bonus : si votre site charge du contenu dynamiquement, vous pouvez utiliser
    // un MutationObserver pour scanner les nouveaux éléments.
    const observer = new MutationObserver((mutations) => {
        mutations.forEach((mutation) => {
            mutation.addedNodes.forEach((node) => {
                if (node.nodeType === 1) { // S'assurer que c'est un HTMLElement
                    lecteur.processNode(node);
                }
            });
        });
    });

    observer.observe(document.body, { childList: true, subtree: true });

})();