Script Perso : Stream "arret Sur Images"


Lassie
 Share

Messages recommandés

Hello,

Ayé... je viens de terminer mon premier script (champagne !... :fouf: ). A l'origine c'est pour mon utilisation perso mais je le poste au cas où il y ait aussi des habitués de l'émission Arrêt sur Images. J'ai fini par me faire un script car j'arrêtai pas d'oublier de l'enregistrer... :D

En plus, la version diffusée sur le net, est la version "brut de pomme", cad sans les coupures du montage (car l'emission diffusée sur les ondes doit faire 1h, donc ya de la coupe).

Voilà... rien de transcendant : le script utilise un parseur et les expressions régulières pour récupérer les infos au milieu des pages HTML de France 5... c'est un peu une usine à gaz, mais ça marche (en tout cas chez moi). Il a été développé sous Linux, et testé avec XBMC-2005-02-01.

Remarque : le script parse 2 pages HTML successivement avant d'afficher les infos... donc selon le type de connexion internet que vous avez, et l'occupation du site de France5, ça peut être un peu long... (voire beaucoup...).

Un grand merci à Alexsolex et Guyane dont les scripts m'ont servi de tutoriaux... et au forum Gueux qui m'a permi de sortir de la mouise sur des problèmes Python... chinese

Ne pas hésiter à m'envoyer les bugs, les trucs qui vont pas, les suggestions (j'ai un peu baclé l'interface...), améliorations, ou corrections... ^_^

A+

EDIT : petite correction suite à légère modif du site de France5... => v0.1.1

F5_arret_sur_image_v0.1.1.zip

Modifié par Lassie
Lien vers le commentaire
Partager sur d'autres sites

Salut

Ben c'est un bon début. Félicitations

C'est sur que le script n'a d'intérêt que pour celui qui veut voir l'émission Arrêt sur image. Il est vrai que le script est un peu 'usine à gaz' mais tu apprendras d'autres techniques avec le temps, et sans doute que tu allègeras ton script.

Juste une info, il y a dans la lib xbmc le control ControlTextBox.

Il te permet de créer un textbox dans lequel tiendra ton texte quelquesoit sa taille. Pour faire un retour à la ligne tu insère un \n. Mais si tu n'en mets pas, il sauteras le texte à la ligne automatiquement en fin de ligne.

Si le texte est trop important pour tenir dans la hauteur du textbox, alors tu pourras monter/descendre avec les 'fleches' de navigation comme les listes.

Lien vers le commentaire
Partager sur d'autres sites

Juste une info, il y a dans la lib xbmc le control ControlTextBox.

Il te permet de créer un textbox dans lequel tiendra ton texte quelquesoit sa taille.

Merci pour l'info... je vais y jeter un coup d'oeil. :)

A propos de l'optimisation de ce genre de script (qui va chercher des infos et des streams sur le net), tu me conseilles quel type de modif exactement pour améliorer tout ça ?

Lien vers le commentaire
Partager sur d'autres sites

humm...

je sais pas trop là comme ca ...

J'ai pas trop le temps en fait pour me jeter plus en profondeur dans ton script. Mais en fait, tu as utilisé des libs que je ne connaissais pas pour parser : htmlentitydefs et sgmllib

Beaucoup de scripts parsent des pages web et je n'ai jamais vu de telles librairies dans les scripts. (moi aussi les scripts des autres furent mes tutos ;) )

J'en ai donc supposé qu'il devait y avoir des moyens plus simple en terme de librairies. Car a chaque librairie supplémentaire que tu charges, ca bouffe un peu plus de mémoire. Ok la xbox en a suffisemment pour ce genre de scripts mais c'est bon à savoir.

Il y a également le fait que je ne connaisse pas trop le site france5 ni comment sont inscrites les URLs dans les pages etc etc etc...

Lien vers le commentaire
Partager sur d'autres sites

Mais en fait, tu as utilisé des libs que je ne connaissais pas pour parser : htmlentitydefs et sgmllib
SGMLLIB, c'est une classe qui permet de parser un document HTML. Au début, j'ai utilisé la classe HTMLLIB, mais elle ne fonctionne correctement que sur des sites avec du HTML "bien formé" (du style : un tag ouvert doit être toujours fermé, etc...). Or c'est pas le cas de la majorité des sites Web qui sont en général optimisés pour IE.... et c'est bien dommage... :(

Du coup, SGMLLIB fonctionne mieux sur les sites "mal formés"...

htmlentitydefs, ça me permet de transformer automatiques les séquences HTML du style aecute; dans le caractère correspondant... c'est bien pratique, ya en plein dans les pages de France 5...

Beaucoup de scripts parsent des pages web et je n'ai jamais vu de telles librairies dans les scripts. (moi aussi les scripts des autres furent mes tutos ;) )
Voui, la majorité des scripts que j'ai pu voir utilisent surtout les expressions régulières, plutôt que le parsing de la page entière. J'ai choisi une solution hybride entre les deux :

- si je dois récupérer juste une info dans une page => expression régulière

- si je dois récupérer plusieurs infos dans la même page => parsing HTML

Et au final, j'obtiens une magnifique... usine à gaz... :D

Il y a également le fait que je ne connaisse pas trop le site france5 ni comment sont inscrites les URLs
Bin, c'est un peu galère : pas de date dans l'URL qui permettrait de générer le lien sans aller le chercher au fond de la page HTML, un site qui change chaque semaine avec plein d'incohérences, liens qui manques, etc, etc...

Ils pourraient penser à ceux qui développent des scripts quand même... pfff... :) Pourquoi ne pas l'eur demander un flux RSS mis à jour chaque semaine qui contient toutes les vidéos de toutes les émissions de France 5, ça serait pas cool ça ? :D

Lien vers le commentaire
Partager sur d'autres sites

lol

très bien expliqué tout ca :)

Pourquoi ne pas l'eur demander un flux RSS mis à jour chaque semaine qui contient toutes les vidéos de toutes les émissions de France 5, ça serait pas cool ça

Ben si ! lol (surtout plus simple pour toi ;) )

Y'a combien de liens videos dans la page ? c'est variable ? Car si y'en a qu'un seul, alors il suffit de retrouver le lien qui commence par rtsp:// jusque le .ram final...

Lien vers le commentaire
Partager sur d'autres sites

:D Salut Lassie,

Bravo, j'adore arrêt sur images.

Je peux le mettre a disposition sur xbmc-stream.be, avec une petite news ca te dit ? (l'offre est aussi pour tout tes futur script python) ;)

Modifié par Dash22
Lien vers le commentaire
Partager sur d'autres sites

Je peux le mettre a disposition sur xbmc-stream.be, avec une petite news ca te dit ? (l'offre est aussi pour tout tes futur script python) ;)

Hello !

Pas de problème pour mettre le script sur xbmc-stream.be

En fait, il ne fait pas grand chose à part lancer le stream d'Arrêt sur Image (celui de l'emission complète, car il y a plusieurs streams sur le site d'ASI).

J'ai quand même un peu honte au niveau de l'interface, c'est un peu moche... :) A l'origine, c'était juste pour moi ! :D

Mais si ça peut rendre service à plein de monde, no problemo !

Normalement, comme il récupère les infos directement sur le net, il doit marcher tout le temps, sauf GROS changement sur le site Web de France 5...

J'ai fait ça à une période où j'avais plein de temps (chomage...), c'est plus trop le cas aujourd'hui (plus chomage...). C'était aussi un super bon exercice de style au niveau des parser Python et des expressions régulières... j'ai appris plein de trucs ! :)

A+

EDIT : sur le site de France5, ya plein d'autres émissions qui diffusent leur stream. Le rêve, ça serait un script comme celui d'Alexsolex pour Canalplus (toutes les émissions dans le même stream)... Si qqn se sent le courage... :)

Modifié par Lassie
Lien vers le commentaire
Partager sur d'autres sites

C'était aussi un super bon exercice de style au niveau des parser Python et des expressions régulières... j'ai appris plein de trucs !

Ben je vais éplucher ton script le jour où j'aurais besoin de tout ca.... Car pour l'instant je N'Y CONNAIT RIEN DU TOUT !!! lol

Lien vers le commentaire
Partager sur d'autres sites

Ok news faites sur xbmc-stream.be.

Sorry lassie j'avais oublié ;)

La news est faites, si tu veux enlever ou modifier quelques chose demande moi

Merci pour ton script. :D

L'émission de cette semaine concerne "punir ou pas le piratage de musique sur internet", je viens de la voir en entier, c'est un régal : ))

Modifié par Dash22
Lien vers le commentaire
Partager sur d'autres sites

slt,

moi ji trouve bien sympa, bravo pour un premier script, et merci!!

a+!

Lien vers le commentaire
Partager sur d'autres sites

  • 3 weeks later...

Toute petite correction sur le script : il y a avait une erreur sur la récupération du résumé de l'emission (légère modif des pages HTML sur le site de France5).

J'en ai profité pour corriger le texte "Appuyez sur X" => 'Appuyez sur A"... :)

Voir mon edit du premier post pour la nouvelle version.

Lien vers le commentaire
Partager sur d'autres sites

  • 3 weeks later...

Hello,

Je ne l'ai pas utilisé cette semaine. Mais si tu l'as testé aujourd'hui, c'est normal qu'il mette "vidéo indisponible" car sur le site, ils mettent à l'avance le texte de la prochaine émission et actuellement sur le site, il y a déjà le texte de l'émission de demain, et donc : pas encore de vidéo. Elle ne sera mise en ligne que Lundi.

J'ai un peu galéré au début pour comprendre (obligé de tester sur plusieurs semaines pour piger le fonctionnement...), mais voilà comment ils font en général :

- l'émission est programmée le Dimanche à 12h30 sur la 5

- en général, dès le Vendredi le site est mis à jour avec la prochaine émission (celle du Dimanche qui suit). Mais ça peut varier (parfois, c'est le Jeudi...)

- en général, une fois l'émission diffusée sur les ondes le Dimanche, la vidéo est mise en ligne seulement le Lundi qui suit... et parfois même le Mardi...

Le script ne fait que récupérer l'émission courante du site. Par contre, un truc à savoir, c'est qu'ils gardent en ligne les archives des émissions déjà diffusées, et donc si tu voulais voir celle de la semaine dernière, il faut aller chercher directement le lien ici (et le mettre dans un fichier strm si tu veux le voir sur sous XBMC) : http://www.france5.fr/asi/sujets/

EDIT : C'est un idée de modif à faire sur le script : pouvoir aller voir toutes les archives au lieu de la dernière emission seulement... :D

A+

Modifié par Lassie
Lien vers le commentaire
Partager sur d'autres sites

  • 2 weeks later...
  • 1 month later...

Hello,

Petite correction du script car il affichait tout le temps "vidéo pas encore dispo sur le site" à cause d'un mauvais pattern de recherche (suite à modif du site chez France5).

Merci à enzo38 qui m'a signalé le problème.

A+

EDIT : c'est bizarre, maintenant, le script trouve bien l'url en rstp://, mais mplayer se plante en voulant l'ouvrir... strange... Je viens de vérifier sur mon PC, et j'ai le même résultat avec MPlayer sous Linux, il me sort une erreur comme s'il ne savait pas décoder le flux...

Est-ce que vous arrivez à voir les vidéos en surfant sur le site à partir d'un PC ?

Modifié par Lassie
Lien vers le commentaire
Partager sur d'autres sites

efectivment ca ne marche pas y'as deja un mieux mais ne le lance pas la video

et quan je mais ca

(rtsp://a1693.v5577d.c5577.g.vr.akamaistream.net/ondemand/7/1693/5577/1724454746/lacinq.download.akamai.com/5577/internet/asi/006869_37_0_56-256kb.rm)

dans un fichier txt que je renome en strm et que je lance avec xbmc ca marche bien si ca peut aider !! :D

Lien vers le commentaire
Partager sur d'autres sites

pfff...

Salut Lassie !

Je n'ai pas encore cherché, mais au vu de ce que rapporte enzo38, le stream devrait fonctionner sur la xbox. Donc un soucis avec python...

Je ne sais pas trop si on peut toujours choisir son player dans XBMC ? Si c'est le cas, peut être que vous ne possédez pas la même version et que l'un des players déconne.

Regardez le post http://gueux-forum.net/index.php?showtopic...ndpost&p=414539, un problème avec le player est déjà remonté...

Modifié par alexsolex
Lien vers le commentaire
Partager sur d'autres sites

Après 2 bonnes heures de recherche je viens de trouver le "bug" (merci les log de XBMC...).

Voilà ce qui cloche :

Quand le script cherche l'url de la vidéo, il trouve d'abord le fichier RAM :

<http://www.france5.fr/images/emissions/006869/37/006869_37_0_56-256kb.ram>

et il fait un "read" dessus pour trouver l'URL complète en rstp://, le site de France5 renvoie la chaine

<rtsp://a1693.v5577d.c5577.g.vr.akamaistream.net/ondemand/7/1693/5577/1724454746/lacinq.download.akamai.com/5577/internet/asi/006869_37_0_56-256kb.rm>

(=> avec des espaces en trop après le ".rm"... et apparemment, quand on envoie ça directement à MPlayer, bien, il n'aime pas... mais alors pas du tout :(

(logs de XBMC)02-06-2005 00:08:12 ERROR cmplayer::openfile() rtsp://a1693.v5577d.c5577.g.vr.akamaistream.net/ondemand/7/1693/5577/1724454746/lacinq.download.akamai.com/5577/internet/asi/006869_37_0_56-256kb.rm failed

avec toujours les mêmes espaces après le ".rm"... et c'est apparemment ça qui fait planter MPlayer...

Du coup, il suffit d'utiliser la méthode "strip" sur l'url pour faire le ménage (vire les espaces avant et après la chaine de caractère).

Et là ça marche beaucoup mieux... ^_^

Donc en fait, ça venait du site de France5 qui envoie un URL bizarre... wow

Hop : corrigé, je remets le fichier ZIP en download, sans changer de num de version (et je vire la version bugguée du post précédent)

Merci à Alexsolex et enzo38 et leur idée qui m'ont fait gagner du temps pour cerner le bug. :ok:

A+

F5_arret_sur_image_v0.1.2.zip

Lien vers le commentaire
Partager sur d'autres sites

je met à jour sur xbmc-scripts.gx-mod.com !

Merci ;)

beuh.. :( en fait, je l'avais jamais mis... désolé... Bizarre quand même je croyais l'avoir fait ...

Modifié par alexsolex
Lien vers le commentaire
Partager sur d'autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant
 Share