3 votes

Enregistrer les noms des morceaux joués sur les radios en ligne

J'écoute souvent le di.fm radio en ligne avec VLC. Le streaming est en MP3 sur HTTP.

Je veux enregistrer tous les noms de morceaux qui sont joués sur cette radio. VLC affiche bien le nom de la piste, mais lorsque la piste suivante est jouée, le nom est perdu.

J'utiliserai ces noms de pistes pour faire des statistiques (comme trouver le top 10) et trouver les pistes dont je ne me souviens pas complètement du nom.

La tâche est-elle possible avec VLC ou un autre client Windows ?

4voto

approxiblue Points 160

VLC (2.2.1 dans cet exemple) possède une interface HTTP qui permet d'interroger la piste en cours de lecture. Vous pouvez l'activer à partir de la ligne de commande :

vlc --extraintf=http --http-host 0.0.0.0:8080 --http-password 'watpasswd'

ou via l'interface graphique (ces paramètres persistent lors des redémarrages) :

  1. Outils > Préférences, Afficher les paramètres : Tout
  2. Interface > Interfaces principales, cochez "Web".
  3. Interface > Interfaces principales > Lua > Lua HTTP > Mot de passe

Vous pouvez visiter http://localhost:8080/requests/status.xml dans un navigateur, saisissez le mot de passe, et vous devriez recevoir un XML contenant une section comme celle-ci :

<category name="meta">
  <info name="title">Jazz</info>
  <info name="filename">http://example.com/station</info>
  <info name="genre">smooth</info>
  <info name="now_playing">Jimmy Sommers - Fly Me To The Moon</info>
</category>

Il ne reste plus qu'à configurer une tâche cron pour sauvegarder périodiquement la piste en cours de lecture.

#!/bin/bash
vlc_status="$(curl --connect-timeout 15 --silent -u :watpasswd http://localhost:8080/requests/status.xml)"

# Parse out now-playing track, escape named entities e.g. '&amp;'
track=$(echo "${vlc_status}" | xmlstarlet sel -t -v ".//info[@name='now_playing']" | xmlstarlet unesc)

# Append new track to log file
echo "$track" >> vlc_log.txt

# Remove duplicates of new track if any
# http://stackoverflow.com/a/1444448/
gawk -i inplace '!x[$0]++' vlc_log.txt

2voto

  • RadioSure

  • Screamer Radio

  • streamWriter

  • RarmaRadio

  • TapinRadio

0voto

James Mertz Points 390

VLC prend en charge l'envoi de pistes à Last.fm. Si vous vous inscrivez sur Last.fm et que vous entrez votre mot de passe dans les préférences de VLC, les morceaux lus seront enregistrés dans votre profil Last.fm, même avec des statistiques.

(Je ne suis pas vraiment sûr que cela fonctionne avec les flux, cependant. Il se peut que ce soit uniquement pour les fichiers locaux).

0voto

osgx Points 6257

Je ne sais toujours pas comment faire ça localement avec vlc ou un autre client de streaming, mais j'ai utilisé wget + cron pour récupérer les "3 chansons qui viennent d'être jouées" du site web de cette radio dans des fichiers texte.

0voto

kinza tahir Points 1

Personnellement, j'écoute DI premium avec Winamp et j'utilise ensuite Streamripper pour sauvegarder les morceaux. Streamripper est assez intelligent pour enregistrer chaque piste dans son propre fichier, au lieu d'un long fichier de flux avec le nom de la piste et l'artiste. Un mot d'avertissement cependant : j'ai découvert que Winamp n'aime pas partager la bande passante de Streamripper même s'il y a suffisamment d'espace et vous constaterez que Winamp sautera entre les "pistes" (terme utilisé de manière approximative car tout est connecté à DI et est le même flux, le fichier pls insère trois connexions à Winamp) et à moins que vous n'ayez activé la répétition, la lecture s'arrêtera. Si la répétition est activée, vous entendrez le saut en direct mais il ne sera pas enregistré.

Auditeur DI depuis 7 ans. Je ne peux plus m'en passer maintenant :) Je n'enregistre pas, sauf si c'est un morceau épique. Ça prend trop de mémoire.

J'espère que cela vous aidera :)

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X