IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Regarder la tv via la freebox avec mplayer


Sujet :

Shell et commandes GNU

  1. #1
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut Regarder la tv via la freebox avec mplayer
    Bonjour

    Je ne parviens pas à afficher la liste des chaines de la freebox et sélectionner celles qui me conviennent avec mplayer.

    Je souhaite écrire un script qui fonctionnerai de la manière suivante: sh mon_script nom_de_la_chaine.

    J'ai commencé mais je ne parviens pas à la finaliser:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #!/bin/ksh
     
    tvurl="http://mafreebox.free.fr/freeboxtv/playlist.m3u"
    tvlist="tv.m3u"
     
    if [ ! -f "$tvlist" ]; then
        curl $tvurl -o $tvlist
    fi
     
    if [ $# -eq 0 ]; then
        echo "Enter a valid channel!"
        exit 1
    fi
     
    if grep -Fq $? "$tvlist"; then
        mplayer $(grep -iA 1 "$*" $tvlist | tail -n 1)
    else
        echo "Not a valid channel!"
    fi
    Est-il possible pour les chaines france 2, france 3 etc. de faire un test un peu plus poussé afin qu'il ne m'ouvre pas la chaine france 2 si je saisis sh mon_script france ?

    En vous remerciant de votre aide
    .Olivier

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 377
    Points
    19 377
    Par défaut
    Bonjour,

    un script qui fonctionnerai de la manière suivante: sh mon_script nom_de_la_chaine.
    alors pourquoi mettre un shabng ksh, si c'est pour finalement le lancer avec sh ?
    ça, c'est le code de retour de la commande précédente, pas le nième argument passé au script.
    les arguments d'un script ($@, ou $*) sont numérotés :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $1 #premier argument
    $2 #deuxième argument
    ${10} #dixième argument
    les accolades sont indispensables pour que le shell ne croit pas devoir traiter le premier argument suivi d'un zéro.

    pour te dispenser de tail, tu pourrais ajouter une option maximum à grep.

    le premier test à faire est celui portant sur le nombre d'arguments.

    "un test plus poussé" que vérifier que les arguments existent dans la liste des chaînes ?
    je ne vois pas.
    éventuellement, avertir que l'argument n'a pas été trouvé dans la liste, et si il y a plusieurs correspondances les afficher à l'utilisateur...
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour

    D'abord, "connais-tu"/"as-tu considéré" le mode esclave de mplayer ?
    Lien direct vers le fichier texte qui donne les détails bruts.

    Tu veux un genre de menu ? Mais tu utilises bien mplayer, et pas gmplayer ? J'imagine qu'une GUI t'affichera une sélection possible.

    Bref. En résumé, ton projet ressemble à la réinvention de la roue.
    D'autres personnes ont sûrement déjà eu ton besoin, et mplayer le fait déjà.

    Quelle était l'idée ? Faire un menu zenity avant de lancer mplayer ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par Olivier Regnier Voir le message
    Bonjour

    Je ne parviens pas à afficher la liste des chaines de la freebox et sélectionner celles qui me conviennent avec mplayer.

    Je souhaite écrire un script qui fonctionnerai de la manière suivante: sh mon_script nom_de_la_chaine.

    J'ai commencé mais je ne parviens pas à la finaliser:
    Pour continuer avec la réflexion de N_BaH, il vaudrait mieux remplacer "ksh" par "bash" (c'est plus courant et plus puissant).

    De plus, il vaudrait mieux faire une fois pour toutes chmod +x mon_script (pour le rendre exécutable), éventuellement le placer dans un chemin connu du PATH et le lancer par mon_script nom_de_la_chaine (ou bien ./mon_script nom_de_la_chaine, si pas connu du PATH).

    Est-il possible pour les chaines france 2, france 3 etc. de faire un test un peu plus poussé afin qu'il ne m'ouvre pas la chaine france 2 si je saisis sh mon_script france ?
    Il faut d'abord savoir si tu veux taper mon_script "france 2" ou bien mon_script france 2.

    Ensuite, il faudrait que tu nous indiques le format du fichier "tv.m3u".
    Si ce fichier contient sur chaque ligne uniquement le nom de la chaine, on peut utiliser l'option grep -x (à vérifier si c'est la même option sous linux et macos), ou bien utiliser la regexp grep -e "^${nom_chaine}$".
    Si le nom de chaine est précédé par exemple d'un numéro (de chaine) et d'une espace, pour éviter toute ambiguïté, on peut utiliser la regexp grep -e "^[0-9][0-9]* ${nom_chaine}$".

    Pour avoir le nom complet de la chaine:
    - Avec l'appel mon_script "france 2", c'est nom_chaine=$1.
    - Avec l'appel mon_script france 2, c'est nom_chaine=$@.

  5. #5
    Expert éminent

    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Juillet 2004
    Messages
    2 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 756
    Points : 6 686
    Points
    6 686
    Par défaut
    Coucou

    Tout d'abord merci pour tous ces éléments d'informations.

    J'ai changé le fonctionnement du script initialement prévu.

    La structure de la playlist est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    #EXTM3U
    #EXTINF:0,2 - France 2 (HD)
    rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=hd
    #EXTINF:0,2 - France 2 (standard)
    rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=sd
    #EXTINF:0,2 - France 2 (bas débit)
    rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201&flavour=ld
    #EXTINF:0,2 - France 2 (auto)
    rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=201
    #EXTINF:0,3 - France 3 (bas débit)
    rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=202&flavour=ld
    #EXTINF:0,3 - France 3 (HD)
    rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=202&flavour=hd
    #EXTINF:0,3 - France 3 (standard)
    rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=202&flavour=sd
    #EXTINF:0,3 - France 3 (auto)
    rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=202
    #EXTINF:0,5 - France 5 (standard)
    rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=203&flavour=sd
    #EXTINF:0,5 - France 5 (auto)
    rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=203
    #EXTINF:0,5 - France 5 (HD)
    rtsp://mafreebox.freebox.fr/fbxtv_pub/stream?namespace=1&service=203&flavour=hd
    #EXTINF:0,7 - Arte (HD)
    etc.
    L'idée ce serait de créer un script qui fonctionne de la manière suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Search a channel: france 2
    1 - France 2 (HD)
    2 - France 2 (standard)
    3 - France 2 (bas débit)
    4 - France (auto)
    Enter a channel number: 1
    Je vais revenir vers vous prochainement car je commence à écrire le code
    .Olivier

Discussions similaires

  1. Avoir la télé sur son pc via la freebox
    Par griese dans le forum Hardware
    Réponses: 6
    Dernier message: 26/03/2007, 13h26
  2. se connecter à un serveur pop3 via un prory avec auth ??
    Par black_code dans le forum Programmation et administration système
    Réponses: 2
    Dernier message: 20/01/2006, 12h53
  3. Installation d'une freebox avec Linux
    Par Herve_G dans le forum Réseau
    Réponses: 14
    Dernier message: 11/12/2005, 22h51
  4. Probléme de connexion avec ATT via une freebox
    Par ybertrand dans le forum Hardware
    Réponses: 3
    Dernier message: 17/10/2005, 16h06
  5. Generer du xml via SQL(oracle) avec de l'asp
    Par jpg dans le forum XQUERY/SGBD
    Réponses: 6
    Dernier message: 03/08/2004, 12h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo