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.

#126 Le 04/02/2010, à 21:37

Majaxzor

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

Bravo pour le script, c'est le premier que j'utilise depuis mon passage à ubuntu et j'aime beaucoup!
Dans l'attente du rajout de groland... big_smile

Hors ligne

#127 Le 04/02/2010, à 22:31

Compte0

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

dest_directory = join(expanduser("~"), 'Canal')

Alors, c'est une question de portabilité  si vous êtes sur linux vous aurez "/home/user/Canal" et sur Windows "c:/Mes Documents/Canal"

Sinon c'est très simple d'ajouter une émission:

1) on teste l'url: http://www.canalplus.fr/rest/bootstrap.php?/bigplayer/search/nom_de_l_emission

2) Si ça marche, il suffit d'ajouter l'émission a la variable available_show

Par exemple pour groland, il suffit de modifier

available_show = {"z": "zapping", "g": "guignols", "s": "sav"}

pas

available_show = {"z": "zapping", "g": "guignols", "s": "sav", "gl": "groland"}

C'est tout !

Sinon obiwankennedy j'ai du mal a comprendre l'intérêt de la ligne

if datenodelist.length == debitnodelist.length and rubriquenodelist[0].firstChild.nodeValue.lower().find(currentTvShow.lower())>-1:


Q-DOS ( Quick & Dirty Operating System) + MS (MicroSoft) = MS-DOS (MicroSoft Dirty Operating System)

Hors ligne

#128 Le 04/02/2010, à 22:49

senado

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

Voici ma version modifiée.

Les retouches que j'ai effectuées:
-Séparation des fonctions de parsing du XML et du download,
-Dates mises en forme à la sauce ISO (YYYY_MM_DD)
-Nom des fichiers reprenant le rubrique canal (plus parlant que les mots clés)
-Création automatique d'une arborescence par emission dans le répertoire destination
-Création automatique du répertoire destination s'il n'existe pas
-Ajout du maximum d'emissions possibles (celles manquantes ne sont simplement plus valides sur le site de Canal)
-Verification du bon protocol pour les videos (rtmp vs hhtp)

(ObiwanKennedy, je n'ai pas modifié le numero de version, ni ta signature, je ne sais pas si j'aurais du le faire...pardon si je commets un impair)

Merci de m'indiquer là où il reste des bugs, c'est sans doute loin d'être parfait...

Le code se trouve directement sur la page d'Obiwankennedy:
http://renaudguezennec.homelinux.org/pr … n,1-6.html

Dernière modification par senado (Le 05/02/2010, à 10:55)

Hors ligne

#129 Le 04/02/2010, à 23:15

senado

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

Compte0 a écrit :

Sinon obiwankennedy j'ai du mal a comprendre l'intérêt de la ligne

if datenodelist.length == debitnodelist.length and rubriquenodelist[0].firstChild.nodeValue.lower().find(currentTvShow.lower())>-1:

Pour ma part j'ai ajouté la deuxième partie de la condition. C'est la prise en compte de la rubrique. SI tu ne fais pas ça, tu chopes une tonne d'adresse de videos qui ne correspondent pas au tvshow selectionné (fais le test avec "pepites" par exemple). Donc ici on fait un tri supplémentaire on ne retenant que ce qui est dans la rubrique correspondant à notre "currentTvShow".

La première partie du test, c'est pas limpide pour moi, je pense qu'Obiwankennedy teste l'existence d'une date et d'un débit pour valider l'url... :s

Hors ligne

#130 Le 04/02/2010, à 23:19

Epy

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

Vous faites des forks de forks de scripts vous êtes dingues big_smile

Vous devriez donner des noms clairs à vos versions, par exemple si vous gardez CanalDailyDownloader, ajoutez un -pseudo-version
par exemple:
pyCanalDailydownloader-senado-0.1 pour la version Python, etc
jusqu'à ce qu'une de vos version soit intégrée dans une "branche principale" si j'ose dire (et ce sans minorer les autres versions et le travail accompli !)

Une petite suggestion pour qu'on s'y retrouve

Hors ligne

#131 Le 05/02/2010, à 00:49

obiwankennedy

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

Compte0 a écrit :

Sinon obiwankennedy j'ai du mal a comprendre l'intérêt de la ligne

if datenodelist.length == debitnodelist.length and rubriquenodelist[0].firstChild.nodeValue.lower().find(currentTvShow.lower())>-1:

La deuxième partie, j'avais fait un == entre la rubrique et l'émission, mais l'utilisation du find rend la chose plus souple.
Car pour les guignols, la rubrique c'est "Les guignols" et l'émission c'est "guignols" (merci à senado). Pour la première partie, c'est uniquement pour vérifier que l'on a trouvé le même nombre d'url que de date. C'est une protection contre d'éventuel OutOfRange error. C'est aussi un moyen de savoir que le parseur XML n'a pas complètement fumé. Dans la phase, teste du parseur XML j'avais mis ça en protection, c'est peut-être inutile maintenant.

@senado
Sinon pour ton script, j'ai mis  la création des dossiers sous une option force. Je trouve ça plus propre que le programme, par défaut, ne tente rien. Il affiche un message "utiliser l'option D pour définir le chemin ou l'option force pour essayer de créer le chemin.

J'ai passé la version à 0.1.2: toujours dispo sur ma page.

J'ai mis sur la page: vos pseudo (compte0 et senado), si vous voulez quelques choses de plus précis ou si vous ne voulez pas apparaitre, dites le moi.

PS: @senado, c'est une violation de la GPL de mettre le code source dans un message du forum. Tu dois distribuer une copie de la licence GPL.

#*   You should have received a copy of the GNU General Public License     #
#*   along with this program; if not, write to the                         #
#*   Free Software Foundation, Inc.,                                       #
#*   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

C'est casse-pied, je sais.

Edit: j'ai mis la création des dossiers dans un try/except pour vérifier que ça marcher bien. histoire d'afficher un message si la création à échouer. Je n'ai pas mi de exit, il faudra le rajouter.

Dernière modification par obiwankennedy (Le 05/02/2010, à 10:04)


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#132 Le 05/02/2010, à 10:57

senado

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

@Obiwankennedy

Merci pour les conseils, j'ai édité mon post pour rentrer dans le droit chemin. Maintenant je cherche un nouveau truc ludique à coder pour continuer mon apprentissage de Python ! smile

Hors ligne

#133 Le 05/02/2010, à 16:53

labaidai

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

Après avoir mis à jour la version du script (vu que ça me le demandait toujours), je me retrouve avec un script inutilisable puisqu'il me demande un mot de passe que je n'ai pas.
Que faireeeuh? ^^


Wine est le seul logiciel Linux étant pro-microsoft, ne l'utilisez pas !

Hors ligne

#134 Le 05/02/2010, à 18:48

Compte0

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

Alors, suite des améliorations:
    * téléchargement parallèle des émissions ( en remplaceant os.system par subprocess.Popen )
    * Flvstreamer est silencieux par défault ( ajout de -q dans les options)
    * création d'un repos sur github pour faciliter le développement
    * début d'un interface graphique (PyGTK/Glade)
    * modification des options pour être plus cohérent (les majuscule pour els émissions, les minuscules pour les option)
    * le programme est exécutable directement comme un script

canal.py -ZGn 2

Le téléchargement en parallèle, c'est très efficace ;-)
Une petite proposition, les vidéo devrai s'enregistrer directement de {XDG_VIDEOS_DIR}/Canal

Dernière modification par Compte0 (Le 05/02/2010, à 19:18)


Q-DOS ( Quick & Dirty Operating System) + MS (MicroSoft) = MS-DOS (MicroSoft Dirty Operating System)

Hors ligne

#135 Le 05/02/2010, à 19:32

obiwankennedy

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

Moi je vais rester sur une version sans interface graphique. Comme, j'ai cronisé le process, ça me sert à rien une GUI.
J'ai d'autres chats à fouetter (voir ma signature). Donc bon en python, ligne de commande : KISS: keep it simply stupid.


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#136 Le 05/02/2010, à 20:24

senado

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

Petite question, comment trouver soit même la page xml ? J'ai beau lire le code source du site, je ne retrouve pas l'adresse de l'URL de base de notre script ?

Bien jouer pour le multi download Compte0 ! (bon, dans un cron à 2h du mat c'est pas primordial non plus). Est ce qu'on peut choisir le nombre de téléchargement concurrent ? (je vais regarder la doc du Popen....)

Suis d'accord avec obiwankennedy sur le GUI, pour moi c'est du cron et c'est pas trop utile. Mais ça m'interesse techniquement parlant donc je vais regarder avec attention et pourquoi pas proposer des idées...

Hors ligne

#137 Le 05/02/2010, à 21:30

Compte0

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

Petite question, comment trouver soit même la page xml ? J'ai beau lire le code source du site, je ne retrouve pas l'adresse de l'URL de base de notre script ?

C'est ObiwanKennedy qui est à l'origine de la première version du script

Bien jouer pour le multi download Compte0 ! (bon, dans un cron à 2h du mat c'est pas primordial non plus). Est ce qu'on peut choisir le nombre de téléchargement concurrent ? (je vais regarder la doc du Popen....)

En fait, c'est très simple Popen lance un sous-processus donc pour limiter le nombre de téléchargement  il suffit de limiter le nombre de Popen lancer.

Suis d'accord avec obiwankennedy sur le GUI, pour moi c'est du cron et c'est pas trop utile

La GUI est dans un autre fichier et importe les fonctions de canal.py


Q-DOS ( Quick & Dirty Operating System) + MS (MicroSoft) = MS-DOS (MicroSoft Dirty Operating System)

Hors ligne

#138 Le 20/02/2010, à 22:45

visor

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

Il y a un petit bug lorsque l'on télécharge "salut les terriens", il ne télécharge que la première partie!

Merci pour le script.

Hors ligne

#139 Le 21/02/2010, à 11:00

obiwankennedy

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

Oui l'émission est séparé en 3 vidéos distinctes.Le programme ne prends forcement que la première. Il y a effectivement un problème.

La modification la plus facile serait d'ajouter un mode qui télecharge quand même les vidéos et les enregistre sur un nom qui n'existe pas déjà.


Faire l'appel, "canal.py -Ud 3" (et l'option qui n'est pas encore implémenter), le prog, télécharge la première partie sous le nom salut+date.flv . Va sur la 2eme vidéo, il détecte qu'il y a déjà un fichier avec ce nom donc il ajoute 2 à la fin du nom: salut+date-2.flv etc..

L'idéal serait de gérer une émission salut les terriens en 3 flux. Cela entrainera pas mal de modification, je pense. A voir!

Dernière modification par obiwankennedy (Le 21/02/2010, à 11:08)


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#140 Le 21/02/2010, à 15:20

BmD_Online

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

Bonjour,
pour certaines émissions, on a plusieurs fichiers par jour.
Par exemple, Le petit journal ainsi que le zapping. Je pense que c'est le même cas que salut les terriens.
Pourquoi ne pas tenir compte du nom du fichier ?

Selon les jours, on a (et parfois plusieurs le même jour) :
LE_PETIT_JOURNAL_ACTU_100218_CAN_121901_video_H.flv
LE_PETIT_JOURNAL_PEOPLE_100218_CAN_121916_video_H.flv
LE_PETIT_JOURNAL_BONUS_100216_CAN_121603_video_H.flv

Pourquoi ne pas prévoir des fichiers appelés ainsi :
LE_PETIT_JOURNAL_ACTU_2010_02_18.flv
LE_PETIT_JOURNAL_PEOPLE_2010_02_18.flv
LE_PETIT_JOURNAL_BONUS_2010_02_16.flv
Voire tout simplement conserver les noms originaux ?

Pour le Zapping, ça donne 2 émissions le même jour :
ZAPPING_INTEGRALE_100215_CAN_121245_video_H.flv
ZAPPING_EMISSION_100215_CAN_121393_video_H.flv


Autre chose : en demandant le petit journal, je me retrouve avec :
LA_PETITE_SEMAINE_EMISSION_100219_CAN_122133_video_H.flv

Est-ce normal ?

Hors ligne

#141 Le 21/02/2010, à 15:45

BmD_Online

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

J'ai fait un petit changement dans le code. J'ai remplacé ça (ligne 107) :

    file_address = join(dest_directory, video_rubrique, video_rubrique
        +"_"+video_date.replace('/', '_')+".flv")

Par ça :

    file_address = join(dest_directory, video_rubrique, url.split('/').pop())

A voir si ça a des effets de bord.
Ça pourrait être l'objet d'une option au lancement, qui propose de conserver le nom original plutôt qu'un renommage.

Dernière modification par BmD_Online (Le 21/02/2010, à 15:46)

Hors ligne

#142 Le 21/02/2010, à 19:31

Epy

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

BmD_Online a écrit :

Bonjour,
Autre chose : en demandant le petit journal, je me retrouve avec :
LA_PETITE_SEMAINE_EMISSION_100219_CAN_122133_video_H.flv

Est-ce normal ?

Oui, le script cherche dans les noms avec "Petit" donc il trouve le petit journal et la petite semaine

Dernière modification par Epy (Le 21/02/2010, à 19:31)

Hors ligne

#143 Le 22/02/2010, à 22:40

obiwankennedy

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

J'ai modifié le script pour mettre sous option (-r) le renommage automatique. Des fichiers, j'ai aussi ajouté l'heure dans le renommage.( A voir si c'est vraiment utile mais ça créer des fichiers bien différents). Je n'ai pas changé le numéro de version. J'essaierai d'écrire un truc pour gérer vraiment les vidéos par jour et télécharger toutes les vidéos du jour, à ce moment là je changerais la version.


Voilà cordialement.
(le lien tjs le même : http://renaudguezennec.homelinux.org/programmation,1-6.html )

Dernière modification par obiwankennedy (Le 22/02/2010, à 22:40)


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#144 Le 22/02/2010, à 23:50

BmD_Online

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

Soit j'ai loupé un truc, soit tu n'as pas mis la bonne version sur ton site.
Dans l'archive, les fichiers datent toujours du 5 février, et on ne retrouve pas l'option dont tu parles.

Hors ligne

#145 Le 23/02/2010, à 13:10

obiwankennedy

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

effectivement il y a un souci, je reglerai ça ce soir.


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#146 Le 23/02/2010, à 21:53

obiwankennedy

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

C'est réparé.


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#147 Le 24/02/2010, à 09:39

Compte0

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

Oula il va falloir faire attention dans les versions si on fait tous des modifications les un après les autres....

Dans le script que tu donnes, tu as supprimé toute les parties avec Popen et donc flvstreamer n'est plus lancé comme un sous processus.

Je sais pas si vous avez l'habitude d'utiliser git, mais avec le dépot sur GitHub, c'était l'idée: avoir un suivi des modification. Je modifie tous ça et je publie sur le dépots


Q-DOS ( Quick & Dirty Operating System) + MS (MicroSoft) = MS-DOS (MicroSoft Dirty Operating System)

Hors ligne

#148 Le 24/02/2010, à 09:57

obiwankennedy

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

je n'ai jamais intégré popen dans ma version.


Dans mes logiciels, j'écris ton nom.
SGNGD: SvgGd is Not GD
Rolisteam

Hors ligne

#149 Le 24/02/2010, à 11:28

Compte0

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

Alors, je viens de modifier le script. Dans l'ordre:
* ajout des vidéos HD si présent sinon on utilise les vidéos de bonne qualité
* support des émissions avec plusieurs vidéos
* respect des dossiers XDG par défaut (les vidéos sont enregistrées dans ~/Vidéos/Canal-downloader)
* retourne une erreur si le réseaux n'est pas disponible
* toutes les options sont en minuscules (sauf verbose) et les émissions en majuscules
* correction du bug avec les options longues (elles n'étaient pas prises en compte)

Alors, pour le nombre de vidéos, j'ai défini un nombre de vidéos par défauts pour chaque émission. Ça suppose que les émissions ont un nombre constant de vidéos, mais s'il change d'un jour sur l'autre, je pense qu'il faudra ré-écrire une bonne partie de la fonction buildURLdico pour se baser sur les dates.

Les modifications sont disponibles sur github et les sources sont téléchargeables ici

je n'ai jamais intégré popen dans ma version.

Pourquoi ? Dans tout les cas ça serai bien qu'on se mete d'accord sur les modifications (même si on veut faire des branches différentes) histoire que les gens soit pas trop paumés


Q-DOS ( Quick & Dirty Operating System) + MS (MicroSoft) = MS-DOS (MicroSoft Dirty Operating System)

Hors ligne

#150 Le 24/02/2010, à 20:21

BmD_Online

Re : [script] Télécharger de nombreuses quotidiennes de canal+ (suite)

Compte0, j'utilisais ta version précédente, dans laquelle j'ai rajouté l'option qui permet de choisir ou pas si le fichier destination doit-être renommé.
As-tu intégré ce changement dans ta nouvelle version ?

Effectivement, par rapport à la version de obiwankennedy, je trouve plus cohérent les options majuscules/minuscules et l'utilisation de popen me plait bien.


Edit : je viens de regarder, c'est intégré. Je teste cette version pour voir.

Dernière modification par BmD_Online (Le 24/02/2010, à 20:27)

Hors ligne