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 26/04/2020, à 18:57

argolance

Vérifier si une URL de streaming radio fonctionne ou non?

Bonjour,
Tout est dans le titre...
Par exemple, comment savoir si une url comme http://www.skyrock.fm/stream.php/yourlayer_64aac.pls est valide?

J'ai épluché le net et n'ai rien trouvé... sad
wget ou curl ne font pas la différence entre l'adresse ci-dessus et, par exemple, la même mais incomplète ou corrompue:http://www.skyrock.fm/stream.php/yoyer_64aac.pls.
Toutes les deux sont considérées comme valables.

Merci de votre attention.
Cordialement.

Dernière modification par argolance (Le 26/04/2020, à 18:58)

Hors ligne

#2 Le 26/04/2020, à 19:05

inbox

Re : Vérifier si une URL de streaming radio fonctionne ou non?

Salut,

Si l'URL est valable, elle doit fonctionner dans ton navigateur. Éventuellement, il te sera proposé, par ton navigateur, de l'ouvrir avec un logiciel de lecture audio/vidéo.

Sur mon PC, Firefox me propose de lire le flux avec MPV.

A+

[Edit] Suite au message de Lukeperp, l'url http://icecast.skyrock.net/s/natio_aac_96k est lisible directement dans le navigateur.

Dernière modification par inbox (Le 26/04/2020, à 19:17)


Un problème résolu ? Indiquez le en modifiant le titre du sujet.

Hors ligne

#3 Le 26/04/2020, à 19:07

LukePerp

Re : Vérifier si une URL de streaming radio fonctionne ou non?

Bonjour,
Le truc n'est pas d'analyser l'URL, mais la liste de streaming. Cette liste est un fichier, dont voici le contenu de ton exemple :

cat yourlayer_64aac.pls
[playlist]
NumberOfEntries=1

File1=http://icecast.skyrock.net/s/natio_aac_96k?tvr_name=yourlayer&tvr_section1=64aac
Title1=Skyrock (1)
Length1=-1

Version=2

Du coup, il suffit de vérifier sa conformité, par exemple, la présence de la rubrique [playlist] et la présence d'une URL pour File1

Dernière modification par LukePerp (Le 26/04/2020, à 19:08)


Gamer inside - Ubuntu Mate dernière LTS - Intel i5, 16 Go - Dual boot Windows - Ethereum user

Hors ligne

#4 Le 26/04/2020, à 20:11

krodelabestiole

Re : Vérifier si une URL de streaming radio fonctionne ou non?

un fichier pls n'est pas l'URL d'un flux mais celle d'un fichier (une playlist qui peut contenir des URL de flux)

et oui, curl permet de tester l'existence de ce fichier (sur un serveur bien configuré) :

kro@minipoutre ~  curl -I http://www.skyrock.fm/stream.php/yoyer_64aac.pls
.HTTP/1.1 200 OK
Server: Apache
Cache-Control: no-cache, must-revalidate
Content-Type: audio/x-scpls
Date: Sun, 26 Apr 2020 19:01:48 GMT
Pragma: no-cache
Transfer-Encoding: chunked
Connection: Keep-Alive

-> 200 ok

kro@minipoutre ~  curl -I http://www.skyrock.fm/stream.php/yourlayer_64aacfdfgdhsf.pls
HTTP/1.0 400 Bad Request
Server: Apache
Vary: Accept-Encoding
Cache-Control: no-cache, must-revalidate
Content-Type: text/plain
Date: Sun, 26 Apr 2020 19:04:20 GMT
Pragma: no-cache
Connection: close

-> 400 bad request

si ton url incomplète ou corrompue retourne aussi 200, c'est parce qu'elle n'est pas corrompue et parfaitement valide :

kro@minipoutre ~  curl http://www.skyrock.fm/stream.php/yoyer_64aac.pls
[playlist]
NumberOfEntries=1

File1=http://icecast.skyrock.net/s/natio_aac_96k?tvr_name=yoyer&tvr_section1=64aac
Title1=Skyrock (1)
Length1=-1

Version=2

il y a un système de réécriture d'URL sur le serveur, et la chaîne yoyer / yourlayer est récupérée pour alimenter la variable tvr_name passée en GET dans l'URL du flux.

curl permet aussi de vérifier la disponibilité du flux :

kro@minipoutre ~  curl -I "http://icecast.skyrock.net/s/natio_aac_96k?tvr_name=yoyer&tvr_section1=64aac"
HTTP/1.1 200 OK
Date: Sun, 26 Apr 2020 19:10:00 GMT
Content-Type: audio/aacp; charset=UTF-8
Connection: close
icy-br: 64
icy-pub: 1
icy-description: Skyrock Paris Ile-de-France AAC 64k
icy-audio-info: bitrate=64
Access-Control-Allow-Origin: *
icy-url:
Instance-id: 03537d93f6fdc8e21c4a97f13a13fd4b
Cache-Control: no-cache
Server: AIS Streaming Server 8.4.2
icy-genre: Rap & RnB
Expires: Mon, 26 Jul 1997 05:00:00 GMT
icy-metaint: 0
Pragma: no-cache
icy-name: Skyrock Paris Ile-de-France AAC 64k
Set-Cookie: uid=W8u7gl6l3Iho5y5iMDZlAg==; expires=Mon, 26-Apr-21 19:10:00 GMT; path=/

tu peux aussi utiliser des solutions plus avancées https://gist.github.com/koniu/7a0593f8d … 30fd0e9671 (ou de la supervision)

En ligne

#5 Le 27/04/2020, à 10:09

argolance

Re : Vérifier si une URL de streaming radio fonctionne ou non?

Bonjour,
Un grand merci pour vos réponses ultra rapides. Ce Forum est décidément très réactif!

J'ai pris le temps de regarder et essayer de comprendre vos propositions, c'est pourquoi je n'ai pas répondu de suite.
@krodelabestiole
Je suis allé jeter un coup d’œil au lien que tu donnes mais je ne comprends pas vraiment quel est l'usage de ce script:

#!/bin/bash
#
# run concurrent curls which download from URL to /dev/null.  output total
# and average counts to results directory.
#

# url to request from
URL="$1"
# max concurrent curls to kick off
conn="$2"
# how long to sleep between each curl, can be decimal  0.5
duration=$3
# how long to stay connected (in seconds)
delay=$4

[ $# -lt 3 ] && {
  echo "Usage: $0 <url> <#connections> <duration> [delay]"
  exit 127
}


test() {
  read size speed conntime rescode exitcode  <<< \
    "$(curl -o /dev/null -m $duration -s -w \
    "%{size_download} %{speed_download} %{time_starttransfer} %{http_code} "\
    "$URL"; echo $?)"
  speed=$(echo "scale=1; $speed / 1024" | bc)
  size=$(echo "scale=2; $size/ 1024" | bc)
  printf "#%s | %s | %-10s | %-10s | %s\n"\
    "$count$count2"\
    "$rescode"\
    "$size kB"\
    "$speed kB/s"\
    "$conntime s"
}
echo "<<< Testing icecast >>>
date:    $(date -R)
url:     $URL
conns:   ${conn}
timeout: ${duration}s
delay :  ${delay}s
"
#count=0
for count in `seq -w 0 $[ ($conn - 1) / 10 ]`
do
  for count2 in `seq 0 9`; do test &  done
  [ "$delay" != "" ] && sleep $delay
done
wait
echo
echo "done"

Au bout du compte, je me demande s'il ne serait pas plus simple de voir ce qui se passe en aval plutôt que de vérifier la validité de l'URL en amont du programme de lecture. Dans mon petit script en gtkdialog, l’utilisateur à le choix entre mpv, cvlc et mplayer. Lorsque l'URL (pls, mp3 ou autre) n'est pas fonctionnelle, le programme de lecture se lance et coince. Il faudrait donc que le comportement du lecteur soit surveillé et, au-delà d'un délai raisonnable, qu'il soit fermé pour revenir à la liste de lecture.

Cordialement.

Dernière modification par argolance (Le 29/04/2020, à 10:37)

Hors ligne