Streamripper, enregistrer les radios web

Classé dans : Internet | 0

Streamripper est un logiciel qui s’utilise en ligne de commande (il existe des interfaces graphiques mais c’est moins fun…). Ce logiciel permet d’enregistrer un flux radio (stream) au format MP3.

Il est également capable de couper les morceaux en fonction des informations envoyées par le site (nom de l’artiste, titre…). Cela fonctionne plus ou moins bien suivant la synchro des infos avec la musique.

Du coup je préfère enregistrer un gros fichier et effectuer ensuite moi même le découpage. Audicity est parfait pour ce genre de tâche. Bien sûr cela implique de garder la liste des pistes.

Ici je vais vous présenter un script Bash (sur Linux). Ce script permet d’enregistrer une radio dans un fichier avec une limite de durée. Par défaut la limite est fixée à 90mn. Cela évite d’avoir de trop gros fichiers. 90mn n’est pas un chiffre au hasard… Si vous avez, comme moi, enregistré des K7 audio dans les années 80/90 vous vous rappelez sûrement qu’il existait des K7 de 60mn (30mn / face) et des 90mn (45mn/face). Nostalgie quand tu nous tiens…

Le script nécessite deux paramètres :

  1. Le nom de la radio à enregistrer (le code contient 4 exemples)
  2. Un  numéro de fichier 01,02….

En sortie le script va créer un fichier avec le nom de la radio et un suffix avec le numéro fourni. Par exemple :

rec-radio.sh esc 05 va créer le fichier esc-05.mp3.

Pendant l’exécution le script affiche le nom des morceaux en cours d’enregistrement. Il faudra enregistrer cela dans un fichier texte si vous souhaitez par la suite ‘découper’ le fichier. Par défaut pendant l’enregistrement les fichiers sont placés dans /tmp.

A la fin de l’enregistrement le fichier est copié dans ~/Musique. Libre à vous de modifier ces valeurs pour placer le fichier ou vous le souhaitez. Le script teste à chaque étape si un fichier portant le même nom existe avant de faire la copie.

#!/bin/sh
clear
## 2700=45mn,3600=60mn,5400=90mn
DUREE="5400"
## dossier temp
TMP="/tmp"
if [ ! -d $TMP ]; then
 echo "Dossier $TMP introuvable"
 exit 1
fi
cd $TMP

## controle param
if [ -z "$1" ]; then
  echo "Veuillez indiquer une radio (esc,ecossea,bluepoint,rushit)"
  echo "Exemple : rec-radio.sh ecossea 01"
  exit 1
fi

if [ -z "$2" ]; then
  echo "Veuillez indiquer un numero de fichier (01,02...)"
  echo "Exemple : rec-radio.sh esc 01"
  exit 1
fi

##choix radio
case "$1" in
  esc)
      ## ESC 128
      URL="http://stream.escradio.com:8030"
      SFILE="esc-$2";;
  ecossea)
      ## ECCOSEA 320 et 128
      #URL="http://46.44.16.109:9000/Chillout_LQ"
      URL="http://46.44.16.109:9000/Chillout_HQ"
      SFILE="ecossea-$2";;
  bluepoint)
      ## Bluepoint Radio 320
      URL="http://5.135.223.251:9000"
      SFILE="BluePoint-$2";;
  rushit)
      ##russian hit 128mp3
      URL="http://ruhit.imgradio.pro:80/RusHit"
      SFILE="RusHit-$2";;
  *)
      echo "Nom de radio invalide valeurs possible : esc, ecossea, bluepoint, rushit"
      exit 1;;
esac

CUEFILE="$SFILE.cue"
SFILE="$SFILE.mp3"

if [ -f $SFILE ] ; then
  echo "Fichier $SFILE existe!"
  exit 1
fi

echo "Enregistrement radio $1 vers fichiers $SFILE..."
/usr/bin/streamripper $URL -u "FreeAmp/2.x" -l $DUREE  -r -A --xs-none -a $SFILE

## copy file
if [ ! -f "~/Musique/$SFILE" ]; then
  echo "Copie fichier vers Dropbox..."
  cp $SFILE ~/Musique/.
else
  echo "Fichier ~/Dropbox/Musique/$SFILE existe copie fichier annulee"
fi

rm $CUEFILE
exit 0

Trouver des radios Web

Avant je passais par le site http://www.shoutcast.com/. Mais ce site semble être payant maintenant…

Le ‘plus simple’ c’est de rechercher les radios qui proposent un flux et de récupérer l’url du flux pour l’utiliser dans le script.