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 17/05/2006, à 12:24

pabix

Script téléchargeant ou faisant jouer à la volée des émissions TV

Bonjour,

J'ai fait beaucoup avancer un script permettant de visionner pas mal d'émissions de Canal plus et de France 2. Ne sachant dans quelle section le placer dans la doc, je vous le livre ici.

Pour l'exécuter sans problème, il faut zenity, et le paquet mimms

Il reste un bug : pendant le téléchargement, il est impossible d'annuler. Le clic sur la croix aussi n'arrête pas l'exéution de mimms. Je me suis pris la tête une semaine avec ça, j'ai abandonné. Pas moyen de gérer correctement ces processus.

SVP pour corriger ce script il serait bien de le placer qq part dans la doc. Si le prochain trouve un endroit adéquat, qu'il le fasse savoir et qu'on ne fasse pas un topic à rallonge...

Benoit

#!/bin/sh
#
# CanalM Easy Version 1.0 Fr (17 mai 2006)
#
# Petit script pour télécharger des émissions de Canal+ et France 2 :
#
#    - Journaux télévisés de 8, 13 et 20 heures
#
#    - Les Guignols
#    - Le Zapping
#    - 7 Jours au Groland
#    - La Minute Blonde
#    - La Boite à Questions
#    - L'Anniversaire
#    - Le Vrai Journal
#    - Nous Ne Sommes Pas Des Anges
#    - Vendredi Pétantes
#    - Samedi Pétantes
#    - Le Grand Journal
#    - Germain fait sa télé
#    - En aparté
# Par Maxfox
#     maxfox (tout attaché) 777 chez hot mail.fr
# Par Pabix
#     mortgat chez gmail point com
# Par fsail
#
# Dépendances : mimms & zenity
# Fonctionnel sur Ubuntu
#
# Encoding UTF-8
# Licence : GNU GPL
# Copyright (C) (Owner)
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

# définitions des variables

dossier=$HOME/Desktop
racineF2='mms://sdmc.contents.edgestreams.net/horsgv/regions/siege/infos/f2'
racineCP='mms://vipmms.canalplus.fr/canalplus'
lecteur=mplayer

# Définitions des fonctions de récupération des vidéos :
# * play_program : jouer directement : ajout à la liste de lecture
# * get_program : télécharger dans le dossier

function play_program(){
        ${lecteur} "${2}${datec}${3}"
}

function get_program(){
        ( mimms -o "${dossier}/${1} ${datec}.wmv" "${2}${datec}${3}" | zenity --progress --title="Téléchargement" --text="L'émission « ${4} » est en cours de téléchargement..." --pulsate --auto-close
        #Vérification que le fichier n'est pas vide
        if (file "${dossier}/${1} ${datec}.wmv" | grep empty$ ) ; then
                zenity --error --title="Erreur" --text="Impossible de télécharger « ${4} », vérifiez la disponibilité"
                rm "${dossier}/${1} ${datec}.wmv"
        fi
        )&
}

# Choix de la méthode

methode=`zenity --title "Méthode ?" --text "Que souhaitez-vous faire ?" --list --column="Choisissez" "Télécharger" "Jouer directement"`

# Clic sur « Annuler » ou absence de choix

if [ "$?" != 0 ] || [ ! "$methode" ]; then
        exit
fi

# Traitement de la méthode

fonc="get_program"
if [ "$methode" == "Jouer directement" ]; then
        fonc="play_program"
fi

# Vérifier que mimms est bien présent

if [ "$fonc" == "get_program" ] ; then
        mimms_path=`which mimms`
        if [ ! "$mimms_path" ] || [ ! -x "$mimms_path" ] ; then
            zenity --error --title="erreur" --text="Impossible de trouver l'executable « mimms ». Veuillez installer le paquet mimms et vérifier que vous avez les droits en exécution. Le téléchargement de votre émission est impossible, elle sera visionnée directement."
            fonc="play_program";
        fi
fi

# Choisir l'émission à télécharger

title="Choix de l'émission"
text="Choisissez dans la liste, en tenant compte des jours de diffusion."
emission=`zenity --title "$title" --width=500 --height=500 --text "$text" --list --column="Emissions" --column "Chaîne" --column "Diffusion"  "20 heures" "France 2" "Tous les jours" "13 heures" "France 2" "Tous les jours" "8 heures" "France 2" "du lundi au vendredi" "Le Grand Journal" "Canal +" "du Lundi au Jeudi" "Les Guignols" "Canal +" "du Lundi au Vendredi" "Le Zapping" "Canal +" "du Lundi au Vendredi" "7 Jours au Groland" "Canal +" "le Samedi" "La Minute Blonde" "Canal +" "du Lundi au Jeudi" "La Boite à Questions" "Canal +" "du Lundi au Jeudi" "L'Anniversaire" "Canal +" "du Lundi au Jeudi" "Le Vrai Journal" "Canal +" "le Dimanche" "Nous Ne Sommes Pas Des Anges" "Canal +" "du Lundi au Vendredi" "Vendredi Pétantes" "Canal +" "le Vendredi" "Samedi Pétantes" "Canal +" "le Samedi" "Germain fait sa télé" "Canal +" "le Samedi" "Le petit journal" "Canal +" "du Lundi au Jeudi" "En aparte" "Canal +" "le Samedi"` 

# Si l'utilisateur clique sur annuler

if [ "$?" != 0 ] ; then
    exit
fi

# Si l'utilisateur n'a rien sélectionné

emission=`echo $emission | sed 's/ max//g'`
if [ ! "$emission" ]; then
    zenity --error --title="erreur" --text="Vous devez faire un choix avant de valider"
    exit
fi

# Choisir la date de l'émission à télécharger

datec=`zenity --title="Choisissez la date" --text="En cas d'erreur, vérifiez que l'émission a bien eu lieu." --calendar --date-format='%y%m%d' `

# Si l'utilisateur clique sur annuler

if [ "$?" != 0 ] ; then
    exit
fi

# Si téléchargement : choix du dossier

if [ "$fonc" == "get_program" ] ; then
        dossier=`zenity --title="Choix du dossier" --width=500 --text="Dans quel dossier souhaitez-vous télécharger votre film ?" --entry --entry-text="$dossier"`
fi
dossier=`echo $dossier | sed "s/\/$//g"` # suppression du dernier slash

# Si erreur sur le dossier

if [ ! -w "$dossier" ] ; then
        dossier=$HOME
        zenity --warning --title="erreur" --width=500 --text="Le dossier spécifié n'existe pas ou ne possède pas les droits en écriture. Le téléchargement se fera dans $dossier."
fi

#################    Télécharger l'émission choisie    ###################
# Descriptions des arguments :
# 1er argument : nom du fichier si la fonction est get_program
# 2e argument : partie de l'URL précédant la date
# 3e argument : partie de l'URL suivant la date
# 4e argument : titre à afficher dans la boîte de dialogue si la fonction est play_program

# "20H".
if [ "$emission" == "20 heures" ]; then
        ${fonc} '20 heures' "${racineF2}/20h/HD_20h_20" '.wmv?WMCache=1&WMBitRate=280000' 'Journal de vingt heures'
fi

# "13H".
if [ "$emission" == "13 heures" ]; then
        ${fonc} '13 heures' "${racineF2}/13h/HD_13h_20" '.wmv?WMCache=1&WMBitRate=280000' 'Journal de treize heures'
fi

# "8H".
if [ "$emission" == "8 heures" ]; then
        ${fonc} '8 heures' "${racineF2}/8h/HD_8h_20" '.wmv?WMCache=1&WMBitRate=280000' 'Journal de huit heures'
fi

# "Les Guignols".
if [ "$emission" == "Les Guignols" ]; then
        ${fonc} 'Les guignols' "${racineCP}/guignols_" '_a.wmv' "Les guignols de l'information"
fi

# "Le Zapping".
if [ "$emission" == "Le Zapping" ]; then
        ${fonc} 'Le zapping' "${racineCP}/zapping_" '_a.wmv' 'Le zapping'
fi

# "7 Jours au Groland".
if [ "$emission" == "7 Jours au Groland" ]; then
        ${fonc} '7 jours au Groland (1)' "${racineCP}/groland_" '_a.wmv' '7 jours au Groland (partie 1)'
        ${fonc} '7 jours au Groland (2)' "${racineCP}/groland_" '_b.wmv' '7 jours au Groland (partie 2)'
fi

# "La Minute Blonde".
if [ "$emission" == "La Minute Blonde" ]; then
        ${fonc} 'La minute blonde' "${racineCP}/minute_" '_a.wmv' 'La minute blonde'
fi

# "La Boite à Questions".
if [ "$emission" == "La Boite à Questions" ]; then
        ${fonc} 'La Boîte à Questions' "${racineCP}/questions_" '_a.wmv' 'La Boîte à Questions'
fi

# "L'Anniversaire".
if [ "$emission" == "L'Anniversaire" ]; then
        ${fonc} 'Anniversaire' "${racineCP}/anniversaire_" '_a.wmv' "L'anniversaire"
fi

# "Le Vrai Journal".
if [ "$emission" == "Le Vrai Journal" ]; then
        ${fonc} 'Le Vrai Journal (1)' "${racineCP}/vraijournal_" '_a.wmv' 'Le vrai journal (partie 1)'
        ${fonc} 'Le Vrai Journal (2)' "${racineCP}/vraijournal_" '_b.wmv' 'Le vrai journal (partie 2)'
fi

# "Nous ne Sommes Pas des Anges".
if [ "$emission" == "Nous Ne Sommes Pas Des Anges" ]; then
        ${fonc} 'Nous ne sommes pas des anges (1)' "${racineCP}/nousnesommes_" '_a.wmv' 'Nous ne sommes pas des anges (partie 1)'
        ${fonc} 'Nous ne sommes pas des anges (2)' "${racineCP}/nousnesommes_" '_b.wmv' 'Nous ne sommes pas des anges (partie 2)'
fi

# "Vendredi Pétantes".
if [ "$emission" == "Vendredi Pétantes" ]; then
        ${fonc} 'Vendredi pétantes (1)' "${racineCP}/vendredi-petantes_" '_a.wmv' 'Vendredi pétantes (partie 1)'
        ${fonc} 'Vendredi pétantes (2)' "${racineCP}/vendredi-petantes_" '_b.wmv' 'Vendredi pétantes (partie 2)'
        ${fonc} 'Vendredi pétantes (3)' "${racineCP}/vendredi-petantes_" '_c.wmv' 'Vendredi pétantes (partie 3)'
        ${fonc} 'Vendredi pétantes (4)' "${racineCP}/vendredi-petantes_" '_d.wmv' 'Vendredi pétantes (partie 4)'
fi

# "Samedi Pétantes".
if [ "$emission" == "Samedi Pétantes" ]; then
        ${fonc} 'Samedi Pétantes (1)' "${racineCP}/samedi-petantes_" '_a.wmv' 'Samedi Pétantes (partie 1)'
        ${fonc} 'Samedi Pétantes (2)' "${racineCP}/samedi-petantes_" '_b.wmv' 'Samedi Pétantes (partie 2)'
        ${fonc} 'Samedi Pétantes (3)' "${racineCP}/samedi-petantes_" '_c.wmv' 'Samedi Pétantes (partie 3)'
fi

# "Le Grand Journal".
if [ "$emission" == "Le Grand Journal" ]; then
        ${fonc} 'Le Grand Journal (1)' "${racineCP}/grandjournal_" '_a.wmv' 'Le Grand Journal (partie 1)'
        ${fonc} 'Le Grand Journal (2)' "${racineCP}/grandjournal_" '_b.wmv' 'Le Grand Journal (partie 2)'
        ${fonc} 'Le Grand Journal (3)' "${racineCP}/grandjournal_" '_c.wmv' 'Le Grand Journal (partie 3)'
        ${fonc} 'Le Grand Journal (4)' "${racineCP}/grandjournal_" '_d.wmv' 'Le Grand Journal (partie 4)'
fi

# "Le petit journal"
if [ "$emission" == "Le petit journal" ]; then
        ${fonc} 'Le Petit Journal' "${racineCP}/petitjournal_" '_a.wmv' 'Le Petit Journal '
fi

# "Germain fait sa télé"
if [ "$emission" == "Germain fait sa télé" ]; then
        ${fonc} 'Germain fait sa télé)' "${racineCP}/germain_" '_a.wmv' 'Germain fait sa télé'
fi

# "En aparte"
if [ "$emission" == "En aparte" ]; then
        ${fonc} 'En aparte(1)' "${racineCP}/enaparte_" '_a.wmv' 'En aparte (partie 1)'
     ${fonc} 'En aparte(2)' "${racineCP}/enaparte_" '_b.wmv' 'En aparte (partie 2)'
fi
##################

Dernière modification par pabix (Le 30/05/2006, à 06:58)


Utilisateur du clavier BÉPO.
mortgat (()) gmail () com
GPG 0x377D716D

Hors ligne

#2 Le 17/05/2006, à 13:30

bobuse

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

Pour info, il existe http://televidilo.bouil.org/

Hors ligne

#3 Le 17/05/2006, à 19:04

coubi64

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

J'ai rajouté le dépôt pour mais il y a un pb de dépendance....:

frederic@ubuntu:~$ sudo apt-get install televidilo
Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances... Fait
Certains paquets ne peuvent être installés. Ceci peut signifier
que vous avez demandé l'impossible, ou bien, si vous utilisez
la distribution unstable, que certains paquets n'ont pas encore
été créés ou ne sont pas sortis d'Incoming.

Puisque vous n'avez demandé qu'une seule opération, le paquet n'est
probablement pas installable et vous devriez envoyer un rapport de bogue.
L'information suivante devrait vous aider à résoudre la situation :

Les paquets suivants contiennent des dépendances non satisfaites :
  televidilo: Dépend: python (< 2.4) mais 2.4.2-0ubuntu3 devra être installé
              Dépend: python2.3-gtk2 mais il n'est pas installable
              Dépend: python2.3-glade2 mais il n'est pas installable
E: Paquets défectueux
frederic@ubuntu:~$

Je suis sous Dapper, le dépôt que j'ai ajouté est:

deb http://thomas.enix.org/pub/debian/packages/ dapper main

Hors ligne

#4 Le 17/05/2006, à 20:27

pabix

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

Il y a une différence majeure entre televidilo et ce script : televidilo ne permet pas d'enregistrer l'émission sur son ordinateur.

Benoit


Utilisateur du clavier BÉPO.
mortgat (()) gmail () com
GPG 0x377D716D

Hors ligne

#5 Le 17/05/2006, à 20:40

coubi64

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

pabix, j'ai récupéré ton script, je te dis un grand bravo smile

Continues comme ça, c'est du bon travail cool

Hors ligne

#6 Le 17/05/2006, à 20:52

manatlan

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

le deb de televidilo ne fonctionne pas ...
le plus simple étant de recuperer le svn ... c 2 scripts python + 1 xml ;-)

je bosse sur televidilo, et suis en train d'intégrer la lecture des flux RSS media ... pour acceder aux bandes annonces allociné et autres rss de youtube et cie ...

Il serait assez simple de rajouter un downloader de video dans televidilo ... si j'ai un peu de temps ; je le fait ...

mais comme on peut saisir la ligne de commande dans televidilo : ça doit dejà être faisable simplement ...


"Oui, oui."
                -- Shakespeare (Richard III, Acte I, Scène IV)

Hors ligne

#7 Le 17/05/2006, à 21:00

pabix

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

@manatlan : ce serait vraiment bien, merci !

Benoit


Utilisateur du clavier BÉPO.
mortgat (()) gmail () com
GPG 0x377D716D

Hors ligne

#8 Le 17/05/2006, à 23:15

Pololilo

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

Hello tous...

Je me suis servit du script sh de téléchargement, et j'ai le processus zenity qui me prends 100% des ressources systeme.
Même apres la fin du téléchargement..

Avez vous eu ce type de symptome ?

@++
PoL


Gnu/Linux Addict

Hors ligne

#9 Le 18/05/2006, à 01:42

maxfox

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

@ Pololilo, oui, enfin j'ai posé un rapport de bug mais on m'a gentiment répondu que s'en était pas un, que cela venait d'un autre processus... mad J'ai l'impression qu'il s'en fiche....

@ Pabix, bravo pour les améliorations, je n'aurais pas pu faire mieux... lol

Par contre j'aimerais savoir pourquoi tu ne la pas mis dans le fil original ? C'est sympa aussi de pouvoir suivre l'évolution d'un script dans sa continuité... wink

Dernière modification par maxfox (Le 18/05/2006, à 12:36)

Hors ligne

#10 Le 18/05/2006, à 07:56

pabix

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

En fait je l'ai mis ici, parce que je souhaitais surtout qu'on intègre ça dans la doc. Le problème c'est que les visiteurs d'un forum s'attardent pas sur un topic voir si un code présenté en haut a été modifié en bas.

Ça serait bien une page sur le wiki, mais je trouve pas la section appropriée.

@Pololilo : Oui, je sais, zenity fait des belles bêtises. J'ai essayé aussi avec gdialog --gauge mais il y a pas d'animation, et encore qq autres problèmes.

Benoit


Utilisateur du clavier BÉPO.
mortgat (()) gmail () com
GPG 0x377D716D

Hors ligne

#11 Le 18/05/2006, à 08:47

coubi64

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

Oui c'est vrai qu'il serait sympa de la maintenir à jour dans une rubrique du Wiki....

Hors ligne

#12 Le 18/05/2006, à 18:44

coxx

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

Pour information, pour televidilo, pour enregistrer en local l'émission, il suffit de mettre "Utiliser le lecteur" : mimms en bas de la fenêtre (plutôt que votre lecteur multimédia préféré).

Si vous n'avez pas mimms d'installé, sudo apt-get install mimms (sur les dépôts universe).


Monsieur K, de la chanson française parigote indépendante qui frappe fort !

Clips, paroles et sons disponibles sur le myspace de Monsieur K

Hors ligne

#13 Le 24/05/2006, à 07:31

mondsur

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

Decidement il marche bien ton script, j'ai un peu de mal a enregistrer mais au moins voir les infos c'est super. Je suis nul en programation et c'est bien domage je voudrais bienb t'aider a l'ameliorer (si jamais je peuc faire quelque chose fai le moi savoir)

-----morg-------
(mon futur blog : emulez windaube, freebsd, smdlinux, etc sur ubuntu)

Hors ligne

#14 Le 24/05/2006, à 10:45

murran

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

est-il possible d'y ajouter une focntionnalité permettant de voir Arrêts sur Images ?
Televidilo ne réussit pas à le faire....

#15 Le 24/05/2006, à 11:02

manatlan

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

murran a écrit :

est-il possible d'y ajouter une focntionnalité permettant de voir Arrêts sur Images ?
Televidilo ne réussit pas à le faire....

j'ai regardé le dernier "arrets sur image" avec televidilo l'autre soir ;-) (sur karl zero)
je peux te confirmer que ça marche ;-)
ce n'est peut être que dans la svn ...


"Oui, oui."
                -- Shakespeare (Richard III, Acte I, Scène IV)

Hors ligne

#16 Le 24/05/2006, à 11:02

Mase

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

Je suis expat au vietnam et les guignols et le zapping commencaient a manquer aux francais de ma boite.
J'ai donc retoucher ce script afin qu'il recupere uniquement les guignols et le zapping de la veille, et le publie sur un repertoire web accessible sur le LAN.
Le script est exécuté tous les jours automatiquement par CRON.

Pour programmer une tache sous CRON, lancer la commande:
crontab -e
Puis editer le fichier de la maniere suivante:
00 05 * * * sh /home/mathieu/getCanal.sh >> /home/mathieu/canal.log
Sauvegarder le fichier.
Le script est maintenant programmé pour s'executer tous les jours a 5h du matin.

Voici le script modifié :
(Zenity n'est plus requis puisque aucune question n'est posee par le script):

getCanal.sh:

# définitions des variables

dossier=/var/www/canalplus
racineCP='mms://vipmms.canalplus.fr/canalplus'
datec=`date -d yesterday "+%y%m%d"`

# * get_program : télécharger dans le dossier

function get_program(){
        ( 
	sudo mimms -o "${dossier}/${1} ${datec}.wmv" "${2}${datec}${3}"

        #Vérification que le fichier n'est pas vide
        if (file "${dossier}/${1} ${datec}.wmv" | grep empty$ ) ; then
             sudo rm "${dossier}/${1} ${datec}.wmv"
        fi
        )&
}


fonc="get_program"

${fonc} 'Le zapping' "${racineCP}/zapping_" '_a.wmv'
${fonc} 'Les guignols' "${racineCP}/guignols_" '_a.wmv'

#17 Le 24/05/2006, à 17:14

pabix

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

Mase : mimms produit une sortie standard très longue et inutile (des .......... pour faire patienter pendant le téléchargement)

Tu ne devrais garder que la sortie d'erreur de mimms en mettant un > /dev/null, sinon ton fichier canal.log va grossir grossir grossir.

Benoit


Utilisateur du clavier BÉPO.
mortgat (()) gmail () com
GPG 0x377D716D

Hors ligne

#18 Le 24/05/2006, à 17:25

coubi64

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

pabix, pourquoi ne pas créer un dépôt (ou l'intégrer dans un dépôt existant), ainsi on serait sûr de rester à jour....

Dernière modification par coubi64 (Le 24/05/2006, à 17:26)

Hors ligne

#19 Le 24/05/2006, à 17:26

pabix

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

Je veux bien, mais plusieurs questions :

*Où je le mets ? J'ai pas de serveur fixe
*je ne sais pas comment créer un dépôt

Benoit


Utilisateur du clavier BÉPO.
mortgat (()) gmail () com
GPG 0x377D716D

Hors ligne

#20 Le 24/05/2006, à 17:36

Riicooo

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

Avant de créer un dépot il faut créer un .deb !
Les dépots sont très faciles à créer en comparaison !

Hors ligne

#21 Le 27/05/2006, à 04:12

Mase

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

pabix a écrit :

Mase : mimms produit une sortie standard très longue et inutile (des .......... pour faire patienter pendant le téléchargement)

Tu ne devrais garder que la sortie d'erreur de mimms en mettant un > /dev/null, sinon ton fichier canal.log va grossir grossir grossir.

Benoit

FYI: Cron reecrit a chaque fois le fichier log, donc le fichier ne grossit jamais

#22 Le 29/05/2006, à 22:43

fsail

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

Salut, voici ma petite contribution pour ce script j'ai rajouté la possibilité de télécharger l'émission"En aparté" qui passe le samedi. Voici le script de mon fichier modifié :

#!/bin/sh
#
# CanalM Easy Version 1.0 Fr (17 mai 2006)
#
# Petit script pour télécharger des émissions de Canal+ et France 2 :
#
#    - Journaux télévisés de 8, 13 et 20 heures
#
#    - Les Guignols
#    - Le Zapping
#    - 7 Jours au Groland
#    - La Minute Blonde
#    - La Boite à Questions
#    - L'Anniversaire
#    - Le Vrai Journal
#    - Nous Ne Sommes Pas Des Anges
#    - Vendredi Pétantes
#    - Samedi Pétantes
#    - Le Grand Journal
#    - Germain fait sa télé
#    - En aparté
# Par Maxfox
#     maxfox (tout attaché) 777 chez hot mail.fr
# Par Pabix
#     mortgat chez gmail point com
#
# Dépendances : mimms & zenity
# Fonctionnel sur Ubuntu
#
# Encoding UTF-8
# Licence : GNU GPL
# Copyright (C) (Owner)
#
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #

# définitions des variables

dossier=$HOME/Desktop
racineF2='mms://sdmc.contents.edgestreams.net/horsgv/regions/siege/infos/f2'
racineCP='mms://vipmms.canalplus.fr/canalplus'
lecteur=mplayer

# Définitions des fonctions de récupération des vidéos :
# * play_program : jouer directement : ajout à la liste de lecture
# * get_program : télécharger dans le dossier

function play_program(){
        ${lecteur} "${2}${datec}${3}"
}

function get_program(){
        ( mimms -o "${dossier}/${1} ${datec}.wmv" "${2}${datec}${3}" | zenity --progress --title="Téléchargement" --text="L'émission « ${4} » est en cours de téléchargement..." --pulsate --auto-close
        #Vérification que le fichier n'est pas vide
        if (file "${dossier}/${1} ${datec}.wmv" | grep empty$ ) ; then
                zenity --error --title="Erreur" --text="Impossible de télécharger « ${4} », vérifiez la disponibilité"
                rm "${dossier}/${1} ${datec}.wmv"
        fi
        )&
}

# Choix de la méthode

methode=`zenity --title "Méthode ?" --text "Que souhaitez-vous faire ?" --list --column="Choisissez" "Télécharger" "Jouer directement"`

# Clic sur « Annuler » ou absence de choix

if [ "$?" != 0 ] || [ ! "$methode" ]; then
        exit
fi

# Traitement de la méthode

fonc="get_program"
if [ "$methode" == "Jouer directement" ]; then
        fonc="play_program"
fi

# Vérifier que mimms est bien présent

if [ "$fonc" == "get_program" ] ; then
        mimms_path=`which mimms`
        if [ ! "$mimms_path" ] || [ ! -x "$mimms_path" ] ; then
            zenity --error --title="erreur" --text="Impossible de trouver l'executable « mimms ». Veuillez installer le paquet mimms et vérifier que vous avez les droits en exécution. Le téléchargement de votre émission est impossible, elle sera visionnée directement."
            fonc="play_program";
        fi
fi

# Choisir l'émission à télécharger

title="Choix de l'émission"
text="Choisissez dans la liste, en tenant compte des jours de diffusion."
emission=`zenity --title "$title" --width=500 --height=500 --text "$text" --list --column="Emissions" --column "Chaîne" --column "Diffusion"  "20 heures" "France 2" "Tous les jours" "13 heures" "France 2" "Tous les jours" "8 heures" "France 2" "du lundi au vendredi" "Le Grand Journal" "Canal +" "du Lundi au Jeudi" "Les Guignols" "Canal +" "du Lundi au Vendredi" "Le Zapping" "Canal +" "du Lundi au Vendredi" "7 Jours au Groland" "Canal +" "le Samedi" "La Minute Blonde" "Canal +" "du Lundi au Jeudi" "La Boite à Questions" "Canal +" "du Lundi au Jeudi" "L'Anniversaire" "Canal +" "du Lundi au Jeudi" "Le Vrai Journal" "Canal +" "le Dimanche" "Nous Ne Sommes Pas Des Anges" "Canal +" "du Lundi au Vendredi" "Vendredi Pétantes" "Canal +" "le Vendredi" "Samedi Pétantes" "Canal +" "le Samedi" "Germain fait sa télé" "Canal +" "le Samedi" "Le petit journal" "Canal +" "du Lundi au Jeudi" "En aparte" "Canal +" "le Samedi"` 

# Si l'utilisateur clique sur annuler

if [ "$?" != 0 ] ; then
    exit
fi

# Si l'utilisateur n'a rien sélectionné

emission=`echo $emission | sed 's/ max//g'`
if [ ! "$emission" ]; then
    zenity --error --title="erreur" --text="Vous devez faire un choix avant de valider"
    exit
fi

# Choisir la date de l'émission à télécharger

datec=`zenity --title="Choisissez la date" --text="En cas d'erreur, vérifiez que l'émission a bien eu lieu." --calendar --date-format='%y%m%d' `

# Si l'utilisateur clique sur annuler

if [ "$?" != 0 ] ; then
    exit
fi

# Si téléchargement : choix du dossier

if [ "$fonc" == "get_program" ] ; then
        dossier=`zenity --title="Choix du dossier" --width=500 --text="Dans quel dossier souhaitez-vous télécharger votre film ?" --entry --entry-text="$dossier"`
fi
dossier=`echo $dossier | sed "s/\/$//g"` # suppression du dernier slash

# Si erreur sur le dossier

if [ ! -w "$dossier" ] ; then
        dossier=$HOME
        zenity --warning --title="erreur" --width=500 --text="Le dossier spécifié n'existe pas ou ne possède pas les droits en écriture. Le téléchargement se fera dans $dossier."
fi

#################    Télécharger l'émission choisie    ###################
# Descriptions des arguments :
# 1er argument : nom du fichier si la fonction est get_program
# 2e argument : partie de l'URL précédant la date
# 3e argument : partie de l'URL suivant la date
# 4e argument : titre à afficher dans la boîte de dialogue si la fonction est play_program

# "20H".
if [ "$emission" == "20 heures" ]; then
        ${fonc} '20 heures' "${racineF2}/20h/HD_20h_20" '.wmv?WMCache=1&WMBitRate=280000' 'Journal de vingt heures'
fi

# "13H".
if [ "$emission" == "13 heures" ]; then
        ${fonc} '13 heures' "${racineF2}/13h/HD_13h_20" '.wmv?WMCache=1&WMBitRate=280000' 'Journal de treize heures'
fi

# "8H".
if [ "$emission" == "8 heures" ]; then
        ${fonc} '8 heures' "${racineF2}/8h/HD_8h_20" '.wmv?WMCache=1&WMBitRate=280000' 'Journal de huit heures'
fi

# "Les Guignols".
if [ "$emission" == "Les Guignols" ]; then
        ${fonc} 'Les guignols' "${racineCP}/guignols_" '_a.wmv' "Les guignols de l'information"
fi

# "Le Zapping".
if [ "$emission" == "Le Zapping" ]; then
        ${fonc} 'Le zapping' "${racineCP}/zapping_" '_a.wmv' 'Le zapping'
fi

# "7 Jours au Groland".
if [ "$emission" == "7 Jours au Groland" ]; then
        ${fonc} '7 jours au Groland (1)' "${racineCP}/groland_" '_a.wmv' '7 jours au Groland (partie 1)'
        ${fonc} '7 jours au Groland (2)' "${racineCP}/groland_" '_b.wmv' '7 jours au Groland (partie 2)'
fi

# "La Minute Blonde".
if [ "$emission" == "La Minute Blonde" ]; then
        ${fonc} 'La minute blonde' "${racineCP}/minute_" '_a.wmv' 'La minute blonde'
fi

# "La Boite à Questions".
if [ "$emission" == "La Boite à Questions" ]; then
        ${fonc} 'La Boîte à Questions' "${racineCP}/questions_" '_a.wmv' 'La Boîte à Questions'
fi

# "L'Anniversaire".
if [ "$emission" == "L'Anniversaire" ]; then
        ${fonc} 'Anniversaire' "${racineCP}/anniversaire_" '_a.wmv' "L'anniversaire"
fi

# "Le Vrai Journal".
if [ "$emission" == "Le Vrai Journal" ]; then
        ${fonc} 'Le Vrai Journal (1)' "${racineCP}/vraijournal_" '_a.wmv' 'Le vrai journal (partie 1)'
        ${fonc} 'Le Vrai Journal (2)' "${racineCP}/vraijournal_" '_b.wmv' 'Le vrai journal (partie 2)'
fi

# "Nous ne Sommes Pas des Anges".
if [ "$emission" == "Nous Ne Sommes Pas Des Anges" ]; then
        ${fonc} 'Nous ne sommes pas des anges (1)' "${racineCP}/nousnesommes_" '_a.wmv' 'Nous ne sommes pas des anges (partie 1)'
        ${fonc} 'Nous ne sommes pas des anges (2)' "${racineCP}/nousnesommes_" '_b.wmv' 'Nous ne sommes pas des anges (partie 2)'
fi

# "Vendredi Pétantes".
if [ "$emission" == "Vendredi Pétantes" ]; then
        ${fonc} 'Vendredi pétantes (1)' "${racineCP}/vendredi-petantes_" '_a.wmv' 'Vendredi pétantes (partie 1)'
        ${fonc} 'Vendredi pétantes (2)' "${racineCP}/vendredi-petantes_" '_b.wmv' 'Vendredi pétantes (partie 2)'
        ${fonc} 'Vendredi pétantes (3)' "${racineCP}/vendredi-petantes_" '_c.wmv' 'Vendredi pétantes (partie 3)'
        ${fonc} 'Vendredi pétantes (4)' "${racineCP}/vendredi-petantes_" '_d.wmv' 'Vendredi pétantes (partie 4)'
fi

# "Samedi Pétantes".
if [ "$emission" == "Samedi Pétantes" ]; then
        ${fonc} 'Samedi Pétantes (1)' "${racineCP}/samedi-petantes_" '_a.wmv' 'Samedi Pétantes (partie 1)'
        ${fonc} 'Samedi Pétantes (2)' "${racineCP}/samedi-petantes_" '_b.wmv' 'Samedi Pétantes (partie 2)'
        ${fonc} 'Samedi Pétantes (3)' "${racineCP}/samedi-petantes_" '_c.wmv' 'Samedi Pétantes (partie 3)'
fi

# "Le Grand Journal".
if [ "$emission" == "Le Grand Journal" ]; then
        ${fonc} 'Le Grand Journal (1)' "${racineCP}/grandjournal_" '_a.wmv' 'Le Grand Journal (partie 1)'
        ${fonc} 'Le Grand Journal (2)' "${racineCP}/grandjournal_" '_b.wmv' 'Le Grand Journal (partie 2)'
        ${fonc} 'Le Grand Journal (3)' "${racineCP}/grandjournal_" '_c.wmv' 'Le Grand Journal (partie 3)'
        ${fonc} 'Le Grand Journal (4)' "${racineCP}/grandjournal_" '_d.wmv' 'Le Grand Journal (partie 4)'
fi

# "Le petit journal"
if [ "$emission" == "Le petit journal" ]; then
        ${fonc} 'Le Petit Journal' "${racineCP}/petitjournal_" '_a.wmv' 'Le Petit Journal '
fi

# "Germain fait sa télé"
if [ "$emission" == "Germain fait sa télé" ]; then
        ${fonc} 'Germain fait sa télé)' "${racineCP}/germain_" '_a.wmv' 'Germain fait sa télé'
fi

# "En aparte"
if [ "$emission" == "En aparte" ]; then
        ${fonc} 'En aparte(1)' "${racineCP}/enaparte_" '_a.wmv' 'En aparte (partie 1)'
	 ${fonc} 'En aparte(2)' "${racineCP}/enaparte_" '_b.wmv' 'En aparte (partie 2)'
fi
##################

smile

Dernière modification par fsail (Le 29/05/2006, à 22:57)

Hors ligne

#23 Le 30/05/2006, à 20:35

uzo

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

Excellent! big_smile
Merci et bravo!

Hors ligne

#24 Le 03/06/2006, à 13:29

hells_dark

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

Dites, je cdapte pas grand chose au site televidilo.
C'est censé être quoi exactement televidilo ? Edit : j'ai vu, je vais utiliser le script..plus souple smile

Sinon, le script est super bien foutu. Ca aurait été chouette en 100% graphique par contre.
Et ya pas mal de truc à actualiser...ya des trucs qui n'existent plus j'ai l'impression hmm
Edit : en fait non:P.

Dernière modification par hells_dark (Le 05/06/2006, à 01:38)


"You caught me at a strange time in my life."
devianArt - site perso

Hors ligne

#25 Le 15/07/2006, à 21:26

doohan

Re : Script téléchargeant ou faisant jouer à la volée des émissions TV

pour ceux qui veulent rendre ce script executable vous pouvais installer ce petit utilitaire tres pratique shc

sudo apt-get install shc
shc -f monfichier.sh
il ne vous reste plus qu'a cliqué sur le nouveau fichier.

un grand bravo à pabix, un tres bon script

Hors ligne