Logo pour ListenBrainz. À gauche, un hexagone divisé en deux : le côté gauche est violet avec une icône d'écouteur blanche, et le côté droit est orange avec des lignes de circuit blanches, évoquant le style de Last.fm. Le texte "ListenBrainz" apparaît à droite, en violet et orange.

Linux : scrobbler sa musique avec Last.fm et ListenBrainz

Si vous aimez suivre ce que vous écoutez, retrouver vos artistes favoris, consulter vos statistiques musicales ou garder une mémoire de vos découvertes, le scrobbling reste très pratique sous Linux.

Le principe est simple : votre lecteur audio, votre navigateur ou un outil dédié envoie automatiquement les morceaux écoutés vers un service comme Last.fm ou ListenBrainz.

Aujourd’hui, la bonne méthode dépend surtout de votre manière d’écouter de la musique : fichiers locaux, streaming web, lecteur desktop, radio, terminal ou application compatible MPRIS.

Scrobbler, cela veut dire quoi ?

Le scrobbling consiste à envoyer automatiquement votre historique d’écoute vers un service musical.

Chaque scrobble contient généralement :

  • le nom de l’artiste ;
  • le titre du morceau ;
  • l’album ;
  • l’heure d’écoute ;
  • parfois le lecteur ou la source utilisée.

Avec le temps, vous obtenez des statistiques d’écoute, des recommandations, des classements personnels et une sorte de journal musical. C’est un carnet intime, mais avec plus de guitares et moins de phrases embarrassantes.

Lire Linux : scrobbler sa musique avec Last.fm et ListenBrainz

Illustration isométrique d'un serveur avec un tiroir ouvert contenant des dossiers, des documents flottants et un smartphone sur fond de grille bleue. Un grand texte blanc indique "CACHE CONTROL", faisant allusion à la gestion des données, aux en-têtes HTTP ou aux techniques de mise en cache PHP.

PHP : envoyer les bons en-têtes HTTP de cache

La mise en cache HTTP est l’un des leviers les plus efficaces pour accélérer un site. Elle évite au navigateur de télécharger plusieurs fois les mêmes ressources et permet aux CDN de servir des réponses sans solliciter l’origine à chaque requête.

Mais un mauvais en-tête de cache peut aussi créer des bugs très pénibles : page privée visible trop longtemps, panier WooCommerce figé, ancien CSS conservé, API qui renvoie des données périmées, ou fichier JavaScript jamais mis à jour. Bref, le cache est un accélérateur. Pas une baguette magique. Et il mord si on le configure mal.

Voici comment envoyer les bons en-têtes HTTP avec PHP, selon le type de contenu : fichiers statiques, HTML dynamique, API, pages privées, WordPress et WooCommerce.

Le rôle des en-têtes HTTP de cache

Quand un navigateur demande une ressource, le serveur peut indiquer comment cette réponse doit être conservée, réutilisée ou revalidée.

Les principaux en-têtes concernés sont :

En-têteRôle
Cache-ControlDéfinit les règles de cache modernes
ExpiresAncien mécanisme basé sur une date d’expiration
ETagIdentifiant de version permettant la revalidation
Last-ModifiedDate de dernière modification utilisée pour revalider
VaryIndique que la réponse varie selon certains en-têtes de requête

Aujourd’hui, Cache-Control est le plus important. Expires peut rester utile pour compatibilité, mais il ne doit plus piloter toute votre stratégie.

Lire PHP : envoyer les bons en-têtes HTTP de cache

HTML5 : corriger l'erreur "The frameborder attribute on the iframe element is obsolete. Use CSS instead." photo

HTML : corriger l’attribut iframe frameborder obsolète

Si vous validez une page HTML et obtenez l’erreur suivante, votre code contient probablement un ancien attribut sur une iframe :

The frameborder attribute on the iframe element is obsolete. Use CSS instead.Langage du code : PHP (php)

Ce message signifie que l’attribut frameborder ne doit plus être utilisé sur un élément <iframe>. Il était courant dans les vieux embeds YouTube, Vimeo, Dailymotion, Google Maps ou widgets tiers. Mais en HTML moderne, on gère la bordure avec CSS.

La correction est simple : supprimez frameborder="0", puis utilisez border: 0; en CSS si vous ne voulez aucune bordure.

Lire HTML : corriger l’attribut iframe frameborder obsolète