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.
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-playerjs
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
- Le widget lit le JSON de playlist exporté depuis DLP
- Il utilise le
recordingStartTimeet leplayHistoryde chaque track pour calculer les offsets - Pendant la lecture, le SyncEngine associe le
currentTimeaux tracks actifs - L'affichage se met à jour en temps réel
Lecteurs supportés
| Élément | Dé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émentsESM (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)
