Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 02/11/2018, à 01:35

Le Goss

Récupérer les infos de flux webradios avec mplayer ou autre

Bonjour à tous
Je dispose de plusieurs milliers d'adresses de flux webradio du type:
http://us4.internet-radio.com:8266
http://192.95.18.39:5552
etc.

A l'aide d'un script et d'une boucle, je cherche à récupérer les informations de chaque webradio dans un fichier texte: nom de la radio, genre et débit.
J'utilise mplayer. exemple:

legoss@legoss:~$ mplayer -vo null -ao null -identify -frames 0 legoss@legoss:~$ mplayer http://us4.internet-radio.com:8266
MPlayer 1.2.1 (Debian), built with gcc-5.4.0 (C) 2000-2016 MPlayer Team
mplayer: could not connect to socket
mplayer: No such file or directory
Failed to open LIRC support. You will not be able to use your remote control.

Playing legoss@legoss:~$.
File not found: 'legoss@legoss:~$'
Failed to open legoss@legoss:~$.
No bind found for key 'M'.


Playing mplayer.
File not found: 'mplayer'
Failed to open mplayer.


Playing http://us4.internet-radio.com:8266.
Resolving us4.internet-radio.com for AF_INET6...

Couldn't resolve name for AF_INET6: us4.internet-radio.com
Resolving us4.internet-radio.com for AF_INET...
Connecting to server us4.internet-radio.com[198.58.98.83]: 8266...

Name   : Smooth Jazz Florida
Genre  : Smooth Jazz
Website: http://www.SmoothJazzFlorida.com
Public : yes
Bitrate: 128kbit/s
Cache size set to 320 KBytes
Cache fill:  0.00% (0 bytes)   
No bind found for key 'l'.
Cache fill:  0.00% (0 bytes)   
No bind found for key 'l'.
Cache fill:  0.00% (0 bytes)   
ICY Info: StreamTitle='Herb Alpert - Windy City';
Cache fill: 15.00% (49152 bytes)   

ID_AUDIO_ID=0
Audio only file format detected.
ID_FILENAME=http://us4.internet-radio.com:8266
ID_DEMUXER=audio
ID_AUDIO_FORMAT=85
ID_AUDIO_BITRATE=128000
ID_AUDIO_RATE=44100
ID_AUDIO_NCH=0
ID_START_TIME=0.00
ID_LENGTH=0.00
ID_SEEKABLE=0
ID_CHAPTERS=0
==========================================================================
Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
AUDIO: 44100 Hz, 2 ch, s16le, 128.0 kbit/9.07% (ratio: 16000->176400)
ID_AUDIO_BITRATE=128000
ID_AUDIO_RATE=44100
ID_AUDIO_NCH=2
Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
==========================================================================
AO: [null] 44100Hz 2ch s16le (2 bytes per sample)
ID_AUDIO_CODEC=mpg123
Video: no video
Starting playback...


Exiting... (End of file)
ID_EXIT=EOF
legoss@legoss:~$

Les renseignements recherchés s'y trouvent:

Name   : Smooth Jazz Florida
Genre  : Smooth Jazz
Website: http://www.SmoothJazzFlorida.com
Public : yes
Bitrate: 128kbit/s

Mais impossible d'envoyer la sortie vers un fichier...
Mauvaise commande de mplayer? impossibilité avec mplayer?

J'ai aussi essayé avec avconv:

legoss@legoss:~$ avconv -i http://us4.internet-radio.com:8266
ffmpeg version 2.8.15-0ubuntu0.16.04.1 Copyright (c) 2000-2018 the FFmpeg developers
  built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.10) 20160609
  configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv
  WARNING: library configuration mismatch
  avcodec     configuration: --prefix=/usr --extra-version=0ubuntu0.16.04.1 --build-suffix=-ffmpeg --toolchain=hardened --libdir=/usr/lib/x86_64-linux-gnu --incdir=/usr/include/x86_64-linux-gnu --cc=cc --cxx=g++ --enable-gpl --enable-shared --disable-stripping --disable-decoder=libopenjpeg --disable-decoder=libschroedinger --enable-avresample --enable-avisynth --enable-gnutls --enable-ladspa --enable-libass --enable-libbluray --enable-libbs2b --enable-libcaca --enable-libcdio --enable-libflite --enable-libfontconfig --enable-libfreetype --enable-libfribidi --enable-libgme --enable-libgsm --enable-libmodplug --enable-libmp3lame --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-librtmp --enable-libschroedinger --enable-libshine --enable-libsnappy --enable-libsoxr --enable-libspeex --enable-libssh --enable-libtheora --enable-libtwolame --enable-libvorbis --enable-libvpx --enable-libwavpack --enable-libwebp --enable-libx265 --enable-libxvid --enable-libzvbi --enable-openal --enable-opengl --enable-x11grab --enable-libdc1394 --enable-libiec61883 --enable-libzmq --enable-frei0r --enable-libx264 --enable-libopencv --enable-version3 --disable-doc --disable-programs --disable-avdevice --disable-avfilter --disable-avformat --disable-avresample --disable-postproc --disable-swscale --enable-libopencore_amrnb --enable-libopencore_amrwb --enable-libvo_aacenc --enable-libvo_amrwbenc
  libavutil      54. 31.100 / 54. 31.100
  libavcodec     56. 60.100 / 56. 60.100
  libavformat    56. 40.101 / 56. 40.101
  libavdevice    56.  4.100 / 56.  4.100
  libavfilter     5. 40.101 /  5. 40.101
  libavresample   2.  1.  0 /  2.  1.  0
  libswscale      3.  1.101 /  3.  1.101
  libswresample   1.  2.101 /  1.  2.101
  libpostproc    53.  3.100 / 53.  3.100
[mp3 @ 0x1d56400] Skipping 0 bytes of junk at 0.
Input #0, mp3, from 'http://us4.internet-radio.com:8266':
  Metadata:
    icy-notice1     : <BR>This stream requires <a href="http://www.winamp.com">Winamp</a><BR>
    icy-notice2     : SHOUTcast DNAS/posix(linux x64) v2.5.1.724<BR>
    icy-name        : Smooth Jazz Florida
    icy-genre       : Smooth Jazz
    icy-br          : 128
    icy-sr          : 44100
    icy-url         : http://www.SmoothJazzFlorida.com
    icy-pub         : 1
    StreamTitle     : Michael Garvin - Call Me Mike
  Duration: N/A, start: 0.000000, bitrate: 128 kb/s
    Stream #0:0: Audio: mp3, 44100 Hz, stereo, s16p, 128 kb/s
At least one output file must be specified
legoss@legoss:~$

Les renseignements s'y trouve aussi, mais je ne peux rien en faire.
Merci pour votre aide
Cordialement


Si je pose une question sur le forum, ce n'est pas par paresse ou pour faire faire "mes devoirs"; c'est par ignorance: j'ai 51 berges. Et, par principe, je préfère être traité d'ignare que de fainéant.
Samsung i7-3630QM CPU @ 2.40GHz × 8 - 64 bits - RAM 7,7 Gio - DD 976 Go - Bodhi 6.0.0 Ubuntu 20.04
Allergique au wysiwyg; traitement à vie: Lilypond - LaTeX - txt2tags

Hors ligne

#2 Le 02/11/2018, à 11:38

toitoinebzh

Re : Récupérer les infos de flux webradios avec mplayer ou autre

salut,

ce genre de commande devrait te plaire, cela crée un fichier avec les datas qui t'intéressent, plus qu'a faire un script pour nettoyer les infos inutiles (regex par exemple)

mplayer -vo null -ao null -frames 0 -identify  http://us4.internet-radio.com:8266 >>infos.txt

source utile
https://snippets.aktagon.com/snippets/1 … r-and-Ruby

Dernière modification par toitoinebzh (Le 02/11/2018, à 11:39)

Hors ligne

#3 Le 02/11/2018, à 11:54

Le Goss

Re : Récupérer les infos de flux webradios avec mplayer ou autre

J'avais déjà essayé.
Ça ne me traite que la première ligne de ma liste d'urls et le script s'arrête, après avoir créé un fichier de plus de 130000 lignes!!!

MPlayer 1.2.1 (Debian), built with gcc-5.4.0 (C) 2000-2016 MPlayer Team

Playing http://109.71.41.6:8123.
Resolving 109.71.41.6 for AF_INET6...
Connecting to server 109.71.41.6[109.71.41.6]: 8123...

Name   : Mais Kizomba (Kizomba, Tarraxinha, Zouk, Semba)
Genre  : Kizomba Tarraxinha Zouk Semba
Website: http://www.maiskizomba.com
Public : yes
Bitrate: 128kbit/s
Cache size set to 320 KBytes

Cache fill:  0.00% (0 bytes)   
Cache fill:  0.00% (0 bytes)   
Cache fill:  0.00% (0 bytes)   
Cache fill:  0.00% (0 bytes)   
Cache fill:  0.00% (0 bytes)   
Cache fill:  0.00% (0 bytes)   
Cache fill:  0.00% (0 bytes) 
...
Cache fill: 15.00% (49152 bytes)   
Cache fill: 15.00% (49152 bytes)   
Cache fill: 15.00% (49152 bytes)   
Cache fill: 15.00% (49152 bytes)   

ID_AUDIO_ID=0
Audio only file format detected.
ID_FILENAME=http://109.71.41.6:8123
ID_DEMUXER=audio
ID_AUDIO_FORMAT=85
ID_AUDIO_BITRATE=128000
ID_AUDIO_RATE=44100
ID_AUDIO_NCH=0
ID_START_TIME=0.00
ID_LENGTH=0.00
ID_SEEKABLE=0
ID_CHAPTERS=0
==========================================================================
Opening audio decoder: [mpg123] MPEG 1.0/2.0/2.5 layers I, II, III
AUDIO: 44100 Hz, 2 ch, s16le, 128.0 kbit/9.07% (ratio: 16000->176400)
ID_AUDIO_BITRATE=128000
ID_AUDIO_RATE=44100
ID_AUDIO_NCH=2
Selected audio codec: [mpg123] afm: mpg123 (MPEG 1.0/2.0/2.5 layers I, II, III)
==========================================================================
AO: [null] 44100Hz 2ch s16le (2 bytes per sample)
ID_AUDIO_CODEC=mpg123
Video: no video
Starting playback...


Exiting... (End of file)
ID_EXIT=EOF

Pour l'instant, je n'ai trouvé que ceci:

mplayer -slave -playlist $line > web & sleep 1 && killall mplayer

C'est plus du bricolage qu'autre chose.
Et ça oblige à prendre une valeur suffisamment importante pour sleep en cas de débit de connexion faiblard. Pas le top donc.


Si je pose une question sur le forum, ce n'est pas par paresse ou pour faire faire "mes devoirs"; c'est par ignorance: j'ai 51 berges. Et, par principe, je préfère être traité d'ignare que de fainéant.
Samsung i7-3630QM CPU @ 2.40GHz × 8 - 64 bits - RAM 7,7 Gio - DD 976 Go - Bodhi 6.0.0 Ubuntu 20.04
Allergique au wysiwyg; traitement à vie: Lilypond - LaTeX - txt2tags

Hors ligne

#4 Le 02/11/2018, à 14:51

Le Goss

Re : Récupérer les infos de flux webradios avec mplayer ou autre

Et encore, le script s'arrête si l'url traitée n'aboutit à rien. Et je ne comprends pas pourquoi...
Si dessous mon script:

#!/bin/bash

> result
while read line; do
#	mplayer -vo null -ao null -frames 0 -identify  $line > infos
	mplayer -slave -playlist $line > infos & sleep 1 && killall mplayer
	nom=$(cat infos | grep "^Name" | cut -d':' -f2 | sed "s/^  *//g" | sed "s/,//g" | sed "s/  */ /g" )  # | sed "s/((*//g" | sed "s/))*//g"
	genre=$(cat infos | grep "^Genre" | cut -d':' -f2 | sed "s/^  *//g" | sed "s/,//g" | sed "s/  */ /g")
	bitrate=$(cat infos | grep "^Bitrate" | cut -d':' -f2 | sed "s/ //g")
	if [ -n "$nom" ]; then
		echo "$nom ($bitrate) $genre;$line" >> result
	fi
done < urls

Extrait du fichier urls:

http://192.96.205.59:7610
http://209.236.126.18:8002
http://217.21.199.146:8012
http://64.95.243.43:8002
http://8.38.78.173:8210
http://sj64.hnux.com
http://stream14.shoutcastsolutions.com:8057
http://uk3.internet-radio.com:11168/live.m3u
http://uk3.internet-radio.com:8021
http://uk3.internet-radio.com:8130
http://uk3.internet-radio.com:8405/live.m3u
http://uk5.internet-radio.com:8174
http://uk6.internet-radio.com:8179
http://us2.internet-radio.com:8362
http://us2.internet-radio.com:8443
http://us3.internet-radio.com:8342
http://us4.internet-radio.com:8193
http://us4.internet-radio.com:8266
http://us5.internet-radio.com:8110
http://www.partyviberadio.com:8020
http://144.217.253.136:8539
http://176.9.43.216:8006
http://184.154.202.243:8053
http://184.75.223.178:8155
http://192.211.51.158:5014
http://192.235.87.113:10222
http://192.99.17.12:6031
http://199.180.72.2:8015

Si je pose une question sur le forum, ce n'est pas par paresse ou pour faire faire "mes devoirs"; c'est par ignorance: j'ai 51 berges. Et, par principe, je préfère être traité d'ignare que de fainéant.
Samsung i7-3630QM CPU @ 2.40GHz × 8 - 64 bits - RAM 7,7 Gio - DD 976 Go - Bodhi 6.0.0 Ubuntu 20.04
Allergique au wysiwyg; traitement à vie: Lilypond - LaTeX - txt2tags

Hors ligne

#5 Le 02/11/2018, à 19:52

toitoinebzh

Re : Récupérer les infos de flux webradios avec mplayer ou autre

as tu essayé ma ligne de commande ?
tu verras qu'il n'y a pas 13000 lignes

Hors ligne

#6 Le 03/11/2018, à 12:40

Le Goss

Re : Récupérer les infos de flux webradios avec mplayer ou autre

J'ai testé ta ligne. Toujours le même résultat.


Si je pose une question sur le forum, ce n'est pas par paresse ou pour faire faire "mes devoirs"; c'est par ignorance: j'ai 51 berges. Et, par principe, je préfère être traité d'ignare que de fainéant.
Samsung i7-3630QM CPU @ 2.40GHz × 8 - 64 bits - RAM 7,7 Gio - DD 976 Go - Bodhi 6.0.0 Ubuntu 20.04
Allergique au wysiwyg; traitement à vie: Lilypond - LaTeX - txt2tags

Hors ligne

#7 Le 03/11/2018, à 23:22

Le Goss

Re : Récupérer les infos de flux webradios avec mplayer ou autre

Je suis parvenu à un résultat correct avec cvlc.
Voici le script complet, avec en prime la recherche des urls par style musical à partir du site https://www.internet-radio.com/
Merci d'y jeter un œil, et merci pour vos suggestions et corrections! cool
Précision: je suis tombé sur ce script de kholo post #1928; mon code permet de créer des fichiers csv dont les contenus peuvent-être ajoutés au sien.

w3m doit être installé.

#!/bin/bash

auj=$(date +%Y%m%d_%H:%M:%S)
> donnees_completes
> donnees_incompletes
> urls
w3m -dump https://www.internet-radio.com/stations/ | sed '/^ /d' | sed '/^$/d' | sed '1,4d' > listestyles
cat listestyles | nl
read -p "Numéro du style recherché: " numero
style=$(cat listestyles | sed -n "$numero"p)
wget "https://www.internet-radio.com/stations/$style/page1" -O page.html
nbr=$(w3m -dump https://www.internet-radio.com/stations/$style/page1 | sed '1,/Previous/d' | sed '/Next/,$d' | tail -1 | sed "s/•//g" | sed "s/  *//g")
for page in `seq 1 $nbr`; do
	wget "https://www.internet-radio.com/stations/$style/page$page" -O page.html
	cat page.html | grep "<br><samp>" | cut -d' ' -f2 | sed "s/\/listen..*//g" | sort | uniq >> urls
done

while read line; do
	> infos
	cvlc -vv "$line" --sout file/mp3:testurl.mp3 --run-time=1 --stop-time=1 --file-logging --logfile=infos vlc://quit
	testurl=$(file testurl.mp3 | grep empty)
	if [ -z "$testurl" ]; then
		nom=$(cat infos | grep "^http debug: Icy-Name: " | sed "s/http debug: Icy-Name: //g" | sed "s/^  *//g" | sed "s/  *$//g" | sed "s/  */ /g")
		genre=$(cat infos | grep "^http debug: Icy-Genre: " | sed "s/http debug: Icy-Genre: //g" | cut -d':' -f2 | sed 's/\([[:punct:]]\)/ /g' | sed "s/^  *//g" | sed "s/  *$//g" | sed "s/  */ /g" | tr [:upper:] [:lower:] | sed -r 's/(^.| .)/\U&/g' )
		bitrate=$(cat infos | grep "icy-br" | head -n 1 | cut -d':' -f4 | sed "s/^  *//g" | sed "s/$/kbps/g")
		if [ -n "$nom" ] && [ -n "$genre" ] && [ -n "$bitrate" ]; then
			echo "$nom [$bitrate] $genre;$line" >> donnees_completes
		else
			echo "$nom [$bitrate] $genre;$line" >> donnees_incompletes
		fi
	else
done < urls
[ -s donnees_completes ] && < donnees_completes sort | uniq > "csv-$auj-$style.csv" && rm donnees_completes
[ -s donnees_incompletes ] && mv "donnees_incompletes" "$auj-$style-donnees_incompletes" 
rm testurl.mp3 infos donnees_completes donnees_incompletes urls listestyles page.html
cat csv* | sort | uniq > radios.csv
clear

Si je pose une question sur le forum, ce n'est pas par paresse ou pour faire faire "mes devoirs"; c'est par ignorance: j'ai 51 berges. Et, par principe, je préfère être traité d'ignare que de fainéant.
Samsung i7-3630QM CPU @ 2.40GHz × 8 - 64 bits - RAM 7,7 Gio - DD 976 Go - Bodhi 6.0.0 Ubuntu 20.04
Allergique au wysiwyg; traitement à vie: Lilypond - LaTeX - txt2tags

Hors ligne