Skip to content

Intégrer votre tracklist sur le web

Le widget dlp-player permet d'intégrer une tracklist synchronisée sur n'importe quel site web. Les visiteurs voient le morceau en cours surligné pendant la lecture de l'enregistrement.

Essayer la démo en ligne →

Prérequis

  • Un fichier JSON de playlist exporté depuis DJ Live Playlist (avec une session enregistrée)
  • Une page web contenant un <video>, <audio> ou <iframe> YouTube/SoundCloud

Installation

Via npm

bash
npm install dlp-player
js
import 'dlp-player/style.css'
import 'dlp-player'

Via CDN

html
<link rel="stylesheet" href="https://unpkg.com/dlp-player/dist/dlp-player.css">
<script src="https://unpkg.com/dlp-player/dist/dlp-player.umd.js"></script>

Démarrage rapide

Ajoutez la classe dlp et un attribut data-dlp-src pointant vers votre JSON de playlist sur n'importe quel élément média :

html
<!-- Avec un fichier vidéo -->
<video class="dlp" data-dlp-src="/playlist.json" src="mon-mix.mp4" controls></video>

<!-- Avec un fichier audio -->
<audio class="dlp" data-dlp-src="/playlist.json" src="mon-mix.mp3" controls></audio>

<!-- Avec une vidéo YouTube -->
<iframe class="dlp" data-dlp-src="/playlist.json"
        src="https://www.youtube.com/embed/VIDEO_ID"
        allow="autoplay; encrypted-media" allowfullscreen></iframe>

Le widget s'initialise automatiquement au chargement de la page — aucun JavaScript nécessaire.

Modes d'affichage

Mode liste (par défaut)

La tracklist apparaît à côté du lecteur. Le morceau en cours est surligné et défilé automatiquement.

html
<video class="dlp" data-dlp-src="/playlist.json" data-dlp-mode="list"
       src="mix.mp4" controls></video>

Mode overlay

La tracklist est superposée en bas du lecteur avec des animations de fondu.

html
<video class="dlp" data-dlp-src="/playlist.json" data-dlp-mode="overlay"
       src="mix.mp4" controls></video>

Comment ça marche

  1. Le widget lit le JSON de playlist exporté depuis DLP
  2. Il utilise le recordingStartTime et le playHistory de chaque track pour calculer les offsets
  3. Pendant la lecture, le SyncEngine associe le currentTime aux tracks actifs
  4. L'affichage se met à jour en temps réel

Lecteurs supportés

ÉlémentDétection automatique
<video>Événement natif timeupdate
<audio>Événement natif timeupdate
YouTube <iframe>YouTube IFrame API (chargée automatiquement)
SoundCloud <iframe>SoundCloud Widget API

Personnalisation CSS

Redéfinissez les variables CSS pour correspondre au design de votre site :

css
.dlp-wrapper {
  --dlp-bg: #1a1a2e;
  --dlp-text-color: #eee;
  --dlp-highlight-bg: rgba(14, 165, 233, 0.2);
  --dlp-title-size: 1rem;
  --dlp-artist-size: 0.85rem;
}

API JavaScript

UMD (global)

js
// L'auto-init se fait au DOMContentLoaded
// Accéder aux instances :
DLP.instances // Tableau de DlpInstance
DLP.init()    // Re-scanner la page pour de nouveaux éléments

ESM (import)

js
import { DlpInstance, SyncEngine, loadPlaylist } from 'dlp-player'

const playlist = await loadPlaylist('/path/playlist.json')
const sync = new SyncEngine(playlist)
const activeIds = sync.getActiveTrackIds(currentTimeInSeconds)