Script pour télécharger les émissions de Radio France

Contenu

⬆

Introduction

La procédure pour télécharger les émissions de Radio France, c'est à dire de France Culture ou France Inter, peut être automatisée. J'ai écris un script shell à ce but. Concrètement, plusieurs commandes sont exécutés qui, à la fin, ne font pas autre chose que ce que j'ai décris dans mon article sur Radio France et les GAFAM.

Préconditions

Linux
Désolé. Mais je ne m'occupe pas de Microsoft, ni de Apple. Si vous ne pouvez pas travailler sur un ordinateur avec Linux, c'est Ω pour vous. Voici quelques jolis chatons. Salut.
Ruby
Ici, c'est un logiciel, dont je parle. Il faut l'installer, car il y a des commandes dans le script, qui en ont besoin. Ruby est un language de programmation, mais il vous faut seulement assurer que "l'interprète", c'est à dire le logiciel qui exécute lui-même le code Ruby, est installé chez vous. Vous le trouvez ici : Télécharger Ruby
Nokogiri
Un autre petit logiciel. Avec ça, le script peut identifier le fichier mp3 d'une émission radiophonique dans le texte d'une page Web. Le but est d'y accéder en ignorant toutes les connexions supplémentaires, que Radio France souhaite établir vers des services externes à Radio France – surtout américains – que vous ne voulez pas contacter.
Installez Nokogiri avec la gestion des paquets ou de la manière qui est prévu avec votre distribution de Linux. Voici des instructions pour quelques types de système : Installing Nokogiri
Curl
Le troisième outil est probablement déjà présent sur votre système. Si non, installez le avec la gestion des paquets qui est prévu pour votre distribution de Linux.
Wget
Wget est un téléchargeur dans le sens strict du mot. Je peux le remplacer par Curl, mais il y a une raison pourquoi je l'utilise dans le script... Je vais m'y souvenir et adapter ce paragraphe quand ça m'arrive. Pour l'instant : Oui, vous pouvez modifier le script est imposer curl à la place de wget... Consultez la man-page pour curl pour vous assurer que les arguments seront bons. Ou installez wget et ne faites rien autre.
Torsocks
Torsocks utilise le réseau Tor pour anonymiser l'accès aux divers services Internet. Techniquement ce n'est pas nécessaire. Mais comme il n'a pas beaucoup de sens de choisir des connexions qui ont besoin d'anonymat contre d'autres qui n'en ont pas besoin, moi – personnellement – j'anonymise tout ce que je peux.
Torsocks est installé avec la gestion des paquets de votre distribution Linux. Le script appelle l'outil torify, qui simplifie l'usage de torsocks.
Bash
Si vous vous avancez jusqu'à ici, vous savez que la Bash n'est pas vraiment indispensable pour faire marcher le script. Je la mentionne, parce que je n'ai pas assez d'expérience avec les autres interpréteurs de commandes.

Le Script

Maintenant je ne sais vraiment pas, ce qu'il faut. Je vous présente le script dans son état actuel, on est le 21. Novembre 2020. Plus bas, vous verrez comment c'est utilisé.


#!/bin/bash
# This script downloads radio-broadcasts in mp3-format from
# the sites of Radio-France.
# The only argument to the script is the URL to a player-page,
# i.e. the page for 1 broadcast, showing a play-button on top.
#
# ©2019-2019 Michael Uplawski <[utilisateur].uplawski@uplawski.eu>
# Use ths script at your own risk, modify it as you please.
# But maybe leave the copyright-notice intact. Thank You.

SC=`basename "$0"`

if [ $# -ne 1 ]
then
  clear
  echo -e "ERREUR ! Il faut l'URL d'une page avec un audio-player"
  echo -e "Exemple :\n\t$SC https://www.franceculture.fr/emissions/la-fabrique-mediatique/defiance-envers-les-medias-quelles-solutions-22"
  exit 1
fi

# --------- SOME DEFINITIONS ----------
# The command to extract an mp3-file from a page
EXTR_CULT='puts $_.at_css("div.heading-zone-wrapper>div.heading-zone-player-button>button.replay-button/@data-asset-source")'

EXTR_INTER='puts $_.at_css("div.cover-emission-actions-buttons-wrapper>button.replay-button/@data-url")'

EXTR=""

if [[ $1 == *"franceinter"* ]]
then
  EXTR=$EXTR_INTER
elif [[ $1 == *"franceculture"* ]]
then
  EXTR=$EXTR_CULT
else
  echo -e "ERREUR ! Téléchargements sont possibles seulement des sites de"
  echo -e "France-Culture ou France-Inter !"
  exit 2
fi
# extract the URL of the mp3
mp3=`torify curl -s "$1" | nokogiri -e "$EXTR"`
# extract the title of the broadcast
title=`torify curl -s "$1" | nokogiri -e 'puts $_.at_css("title/text()")'`
title=`echo "$title"|tr -s "[:space:][:punct:]" _`

# Output-file
OFL="$title".mp3

echo "Fetching $mp3."
echo "Writing to $OFL"

# --------> ACTION <---------
# download the mp3
torify wget -c "$mp3" --output-document="$OFL"
# <-------- END ACTION --------->
#EOF

Utiliser le script

Voici les étapes pour, enfin, télécharger une émission de Radio France. J'ai choisi une émission de France Inter Confinement : à l’heure où tout se fait à distance, comment lutter contre la fracture numérique ? . Mais doucement... Nous nous occupons du script, d'abord (c'était On s'occupe, mais On est con. Tenez le à distance).

  1. Sauvegardez le script sous un nom et dans un dossier de votre choix. Ne parsemez pas des fichiers exécutables partout sur votre disque dur, mais désignez plutôt un endroit, qui servira à accumuler des petits outils de ce genre. Pour maintenant, je décide que le script est
    /home/[utilisateur]/bin/get_broadcast
  2. Rendez le script exécutable :
    :~$ chmod 755 /home/[utilisateur]/bin/get_broadcast
    Si vous choisissez un dossier plus haut dans la hiérarchie des dossiers de votre système, il vous faut les droits de l'administrateur – root – pour pouvoir exécuter cette commande.
  3. Accédez à la page de l'émission. Non pas de Le téléphone sonne , mais de cette édition du 20 novembre 2020. Vous trouvez toutes ces pages en passant par le grille des programmes. La bonne page a un bouton ÉCOUTER
  4. Copier la URL de la page dans le presse-papier. Ici, c'est
    https://www.franceinter.fr/emissions/le-telephone-sonne/le-telephone-sonne-20-novembre-2020
  5. Ouvrez votre interpréteur de commandes. Si vous n'avez rien changé dans le code du script, c'est plutôt Bash. Mais le script va trouver la Bash, si elle est vraiment disponible, et l'utiliser de toute façon. Le fichier mp3 qu'on va que nous allons recevoir de Radio France sera stocké dans le répertoire, où vous exécutez le script. Vous pouvez, donc, déjà décider où vous voulez le retrouver après, et y aller tout de suite
    :~$ cd [/chemin/au/répertoire]
  6. Appelez le script et comme seul argument, fournissez le URL précédemment copié de votre navigateur Web :
    :~/chemin/au/répertoire$ /home/[utilisateur]/bin/get_broadcast https://www.franceinter.fr/emissions/le-telephone-sonne/le-telephone-sonne-20-novembre-2020
    La commande sera plus courte, si vous pouvez faire entrer le chemin /home/[utilisateur]/bin dans la variable Path. Le script get_broadcast sera trouvé partout, sans que vous aurez besoin d'indiquer le chemin vers son répertoire.

Ça y est. Observez votre émission arriver...

Avantages

La procédure est la même pour France Culture

Le moment que vous téléchargez une émission de cette manière, vous établissez qu'une seule connexion via http. Seule votre recherche sur les sites de Radio France vous expose à des potentiels abus. Si vous bloquez la plupart des scripts et cookies, qui sont normalement présents sur franceculture.fr ou franceinter.fr, et faites seulement exception pour radiofrance.fr, franceinter.fr et franceculture.fr, vous ne risquez plus rien.

Dernières Modifications

27 novembre 2020
Guillemets exédentaires dans le script.
21 novembre 2020
Plusieurs interventions pour corriger l'orthographie et la grammaire.
Cosmétique, surtout dans les styles et un peu dans la composition des phrases.
Wget est un autre outil qui est utilisé par le script et que j'avais oublié dans la liste sous préconditions.

Ω