Vous n'êtes pas identifié(e).
Le guide pour mythtv : https://mythtv-fr.org/forums/viewtopic. … 265#p25265
Le guide pour hts : https://gitlab.com/snouf/tvheadend_tool … box_hts.py
Bonjour à tous
J'apprends à l'instant que tr4ck3ur à coder un nouveau grabber xmltv basé sur l'api du guide TV de la freebox (uniquement pour les abonnés free donc) : http://www.style-python.fr/PasteBin/paste/241908
Je ne suis malheureusement plus chez free (provisoirement) je en peux donc pas testé.
Bonjour,
Je suis intéressé par ce grabber qui s'appuie sur l'api du guide Freebox TV, par contre, je souhaiterais l'utiliser avec tvheadend. Je vois que le script réalise un certain nombre d'import de donnée de MythTV, comment pourrait-on le rendre autonome.
Merci
Moi aussi ce sujet m'intéresse.
Le guide freebox est vraiment très complet.
J'aimerais vraiment avoir du temps pour tester et modifier ce grabber pour qu'il soit complètement indépendant et conforme aux standards xmltv.
comment pourrait-on le rendre autonome.
Tu t'y connais en Python ? ;-)
De ce que je vois, la seule chose qu'il fait en rapport avec MythTV, c'est de chercher les chaines dans la base de données pour savoir quelle chaîne récupérer dans l'API de la freebox.
Si on supprime le bloc de la ligne 28 à 33 comprise, ainsi que l'import sur la ligne 8, ça devrait fonctionner.
Bien sûr, il faut alors ajouter à la main dans la liste "list_channels" les chaînes qui nous intéressent (en plus de celles de la TNT qui sont mises là par défaut)
Peut-être que je reviendrais ici dans quelques temps si j'arrive à tester ça.
Dernière modification par dalgwen (05/12/2016 11:41:15)
Disclaimer : J'ai migré sur tvheadend mais je passe encore ici de temps en temps (bouuhhh le traître)
Hors ligne
Je serais égallement intéressé, je connais le python mais je ne peux pas m'en occuper pour l'instant (je ne suis provisoirement plus chez free)
Dans 4-5 mois peut-être
Par contre si ce que dit dalgwen fonctionne je devrait pouvoir reécrire le bloc 28-33 pour tvheadend.
Hors ligne
Si cela peut aider, je peux vous donner accès à http://mafreebox.freebox.frv via un proxy chez moi ou un accès vpn.
Merci Nague, en fait je me suis dit la même chose et j'ai demandé un accès VPN à mon frère
Donc voici le 1er jet http://www.style-python.fr/PasteBin/paste/b56f95
1/ Je n'ai pas un hts configuré avec le chaine free donc je n'ai pas testé l'import de hts, de plus certaine chaîne sont orthographiée autrement en fonction des sources (TNT)
2/ tr4ck3ur a fait le choix de faire une sortie dans un "fichier", je pense que pour hts qu'il serait plus intéressant de rediriger le resultat vers la sortie standard (stdout). Qu'en pensez vous ?
3/ j'ai commenté la liste des programmes "tnt", selon moi il n'y a pas d’intérêts a les introduire à la main puisqu'il se trouve dans le liste des chaînes hts.
4/ hts a des problèmes avec les catégories (en tout cas chez moi) il me semble avoir lu qu'on pouvait résoudre le problème en traduisant les catégories vers l'anglais. Queluqu'un a plus d'info la dessus ?
5/ Par contre je trouve l'xmltv très peu complet
Pour utiliser le grabbeur
# Lancement sur la machine ou se trouve hts avec le port par défaut, utilisateur
# admin et mot de passe admin
./xmltv.mafreebox.fr.py
# Il est possible de changer l'url, le port, l'utilisateur et le mot de passe
./xmltv.mafreebox.fr.py --help
Hors ligne
5/ Je suis aller voir à la source
{u'result': {u'category': 19,
u'category_name': u'Sport',
u'desc': u"Vainqueur du premier slalom g\xe9ant de la saison disput\xe9 \xe0 S\xf6lden, Alexis Pinturault compte bien marquer les esprits devant ses supporters de Val-d'Is\xe8re. L'Autrichien Marcel Hirscher et l'Am\xe9ricain Ted Ligety figurent comme les deux principaux rivaux du skieur fran\xe7ais.",
u'duration': 5100,
u'id': u'pluri_150132592',
u'picture': u'/api/v3/tv/img/epg/programs/100x77/EMI_92075.jpg',
u'short_desc': u"Vainqueur du premier slalom g\xe9ant de la saison disput\xe9 \xe0 S\xf6lden, Alexis Pinturault compte bien marquer les esprits devant ses supporters de Val-d'Is\xe8re. L'Autrichien Marcel Hirscher et l'Am\xe9ricain Ted Ligety figurent comme les deux principaux rivaux du skieur fran\xe7ais.",
u'sub_title': u'Coupe du monde 2016/2017 - Slalom g\xe9ant messieurs 2e manche',
u'title': u'Ski'},
u'success': True}
{u'result': {u'category': 2,
u'category_name': u'T\xe9l\xe9film',
u'desc': u"En 1592, quatre ans apr\xe8s la d\xe9faite de l'Invincible Armada espagnole, la tension subsiste entre la Grande-Bretagne et l'Espagne, et plus particuli\xe8rement entre Francis Drake, le c\xe9l\xe8bre corsaire de la reine, marin g\xe9nial et aventurier sans peur, et son ennemi jur\xe9, le capitaine Sandovate. Une rencontre avec un myst\xe9rieux sultan du Moyen-Orient, qui prend en otage la fille de Drake, va lancer les deux hommes dans une course contre la montre \xe0 la recherche du mythique arbre de la vie. Drake va naviguer sur toutes les mers, allant jusque dans le Grand Nord, et va croiser le chemin de monstres terrifiants pour accomplir sa qu\xeate et sauver sa fille...",
u'duration': 5400,
u'id': u'pluri_150132636',
u'picture': u'/api/v3/tv/img/epg/programs/100x77/EMI_277493.jpg',
u'short_desc': u"Charg\xe9 de retrouver l'arbre de la vie par un sultan qui retient sa fille en otage, un marin va explorer tous les oc\xe9ans, poursuivi par son pire ennemi.",
u'title': u'Le voyage fantastique du capitaine Drake'},
u'success': True}
Et il n'y a vraiment pas grand chose (pas les acteurs, le no de saison, de l'épisode etc...)
Hors ligne
4/ j'avais trouver l'info ici https://tvheadend.org/boards/12/topics/9892
La liste des catégories (id : nom) non exhaustive (l'idéal serait de trouver une liste id : nom en anglais selon https://tvheadend.org/projects/tvheaden … /src/epg.c exhaustive.
'1': 'Film',
'2': 'T\xe9l\xe9film',
'3': 'S\xe9rie/Feuilleton',
'5': 'Documentaire',
'10': 'Magazine',
'11': 'Jeunesse',
'12': 'Jeu',
'13': 'Musique',
'14': 'Divertissement',
'19': 'Sport',
'20': 'Journal',
'22': 'D\xe9bat',
'24': 'Spectacle'
Hors ligne
Merci Snouf
Edit : j'efface mon message inutile, tout est dans le lien de SnouF que je n'avais pas vu.
Dernière modification par dalgwen (11/12/2016 16:40:51)
Disclaimer : J'ai migré sur tvheadend mais je passe encore ici de temps en temps (bouuhhh le traître)
Hors ligne
Je m'étais suis tromper pour le 1er lien dans le post précédant le script est sur la page du 1er lien #7
Partir de l'id de la catégorie me semblait plus fiable et plus propre.
Hors ligne
1ère release : https://gitlab.com/snouf/tvheadend_tool … box_hts.py
Mais ... je ne peux pas testé dans hts
- Tout est envoyé dans la sortie standard ça devrait donc être plus facile à intégrer dans hts.
- Catégorie en anglais et en français, faut tester si le filtre hts fonctionne
- Contrairement à ce que je disais #5 les saisons/épisodes sont supportés (partie codée par tr4ck3ur)
Hors ligne
Arf je n'avais pas vu ton lien. Le script que j'utilise actuellement est effectivement dedans...
Faut que je trouve du temps pour tester ton travail.
Mais en tout cas merci, tu prends du temps pour coder un truc que tu n'utilises même pas
Disclaimer : J'ai migré sur tvheadend mais je passe encore ici de temps en temps (bouuhhh le traître)
Hors ligne
Super travail SnouF ! Je teste ça illico sur mon hts.
Si je comprends bien, ton script se connecte en http à hts pour récupérer la liste des chaînes; et la sortie se fait exclusivement en stdout ?
Il va falloir que je fasse attention à la façon dont je nomme mes "channels" pour que cela soit comme sur free.
J'ai mis un peu de temps à installer 2 modules pythons qu'il me manquait (tzlocal et slugify) mais au finish ça fonctionne !
C'est assez long (8 bonnes minutes, dont 3 pour les break) pour récupérer, et ça sort bien un XML. Sinon, comme je l'avais anticipé, pas mal de chaines sont zappées car mal nommées.
Par contre, pour l'intégrer à tvheadend il y a ces prérequis il me semble:
- le nommage: le script doit commencer par tv_grab_ (pas compliqué)
- doit répondre à ces deux arguments: --description et --capabilities
Est-ce possible de rajouter ça ?
@dalgwen tu ne pouvais pas avoir vu mon lien, je m'était tromper de lien
@Nague merci pour le test
Pour le temps d’exécution, j'ai essayer d'enlever/réduire les "sleep" mais ... ça marche encore plus lentement ("too many requests" beaucoup plus fréquents)
Pour les chaînes mal nomméeje me suis poser la question et me suis dit que les chaines devais avoir le même nom puisque provenant de la même "source" (free) mais apparement trompé . C'est le nom "slugifier" qui est comparer "France 3" devient "france-3".
Je vois plusieurs solutions
1/ renommer les chaines (pas top)
2/ faire une table de correspondance
3/ se basé sur le xmltvid dans hts plutôt que nom (demande d'entrer les xmltvid avant de récupérer les programmes)
Je pense mettre en place 3/ en compléments
renommage tv_grab : je le fait de suite, url vers le script vas donc changer [edit] fait mais gitlab en HS, attendre un peu
--description et --capabilities : il faut juste que je sache quelle sortie donner sur ces arguments et c'est ici http://wiki.xmltv.org/index.php/XmltvCapabilities
Hors ligne
--description, --capabilities et --quiet ajouté.
(et pour que ce soit plus bavard on peut faire un "-v info" ou pire encore "-v debug")
Hors ligne
Excellent SnouF !
Pour les chaines mal nommées, je vois une 4ème solution: un fichier à plat avec la liste des chaines souhaitées, à passer en argument (et plus de connexion http au hts) Je pousse un peu mais c'est ce qui correspondrait le mieux à mon usage; j'ai très peu de sources Free
Pour l'intégration dans tvheadend, visiblement, cela ne passe pas si la capabilites "baseline" n'est pas supportée.
Ci-dessous, le retour de: /usr/bin/tv_find_grabbers --verbose
Sans baseline, il ne cherche même pas la description:
Investigating /usr/bin/tv_grab_fr_mafreebox_hts.py
Found capabilities (run_capture): manualconfig
Avec baseline, il prend la description, et apparait dans l'onglet EPG Grabber Modules:
Investigating /usr/bin/tv_grab_fr_mafreebox_hts.py
Found capabilities (run_capture): baseline manualconfig
Found description (run_capture): France (mafreebox.fr, pour hts)
J'ai d'autres script epg qui sont "baseline" et qui ne respectent pas les reco de http://wiki.xmltv.org/index.php/XmltvCapabilities, cela fonctionne quand même. A voir.
Test de fonctionnement sous TVheadend:
1er passage: il détecte 20 nouvelles chaines
2016-12-14 11:12:24.119 spawn: Executing "/usr/bin/tv_grab_fr_mafreebox_hts.py"
2016-12-14 11:23:51.655 xmltv: /usr/bin/tv_grab_fr_mafreebox_hts.py: grab took 688 seconds
2016-12-14 11:23:51.657 xmltv: /usr/bin/tv_grab_fr_mafreebox_hts.py: parse took 0 seconds
2016-12-14 11:23:51.657 xmltv: /usr/bin/tv_grab_fr_mafreebox_hts.py: channels tot= 0 new= 20 mod= 20
2016-12-14 11:23:51.657 xmltv: /usr/bin/tv_grab_fr_mafreebox_hts.py: brands tot= 0 new= 0 mod= 0
2016-12-14 11:23:51.657 xmltv: /usr/bin/tv_grab_fr_mafreebox_hts.py: seasons tot= 0 new= 0 mod= 0
2016-12-14 11:23:51.657 xmltv: /usr/bin/tv_grab_fr_mafreebox_hts.py: episodes tot= 0 new= 0 mod= 0
2016-12-14 11:23:51.657 xmltv: /usr/bin/tv_grab_fr_mafreebox_hts.py: broadcasts tot= 0 new= 0 mod= 0
2ème passage (j'ai souscrit à l'EPG de "Gong" et "M6 Music"): il détecte 53 programmes
2016-12-14 11:27:22.007 spawn: Executing "/usr/bin/tv_grab_fr_mafreebox_hts.py"
2016-12-14 11:38:47.490 xmltv: /usr/bin/tv_grab_fr_mafreebox_hts.py: grab took 685 seconds
2016-12-14 11:38:47.496 xmltv: /usr/bin/tv_grab_fr_mafreebox_hts.py: parse took 0 seconds
2016-12-14 11:38:47.496 xmltv: /usr/bin/tv_grab_fr_mafreebox_hts.py: channels tot= 0 new= 0 mod= 0
2016-12-14 11:38:47.496 xmltv: /usr/bin/tv_grab_fr_mafreebox_hts.py: brands tot= 0 new= 0 mod= 0
2016-12-14 11:38:47.496 xmltv: /usr/bin/tv_grab_fr_mafreebox_hts.py: seasons tot= 0 new= 0 mod= 0
2016-12-14 11:38:47.496 xmltv: /usr/bin/tv_grab_fr_mafreebox_hts.py: episodes tot= 53 new= 53 mod= 53
2016-12-14 11:38:47.496 xmltv: /usr/bin/tv_grab_fr_mafreebox_hts.py: broadcasts tot= 53 new= 53 mod= 53
Quand je consulte l'EGP pour ces 2 chaines, il a bien été mis à jour avec des programmes à partir de demain 15/12 6h00. Rien pour aujourd'hui. Est-ce normal ? Il pourrait y avoir un décalage de date ?
[edit SnouF] : balise code
baseline ajouté.
Quand je consulte l'EGP pour ces 2 chaines, il a bien été mis à jour avec des programmes à partir de demain 15/12 6h00. Rien pour aujourd'hui. Est-ce normal ? Il pourrait y avoir un décalage de date ?
Je n'ai rien touché (ni même regardé le fonctionnement) de cette partie, j'ai repris tels quels le travail de tr4ck3ur.
Pour le décalage je ne pense pas car en regardant le script la date "start" est récupérer de façon directe dans les données de l'api.
Pour la récupération uniquement demain je regarde le code de tr4ck3ur et ne compred pas trop le +72000 ligne 246
Hors ligne
Version sans le +72000 en ligne. A tester.
Pour revenir à la liste des chaines le fichier plat me semble une bonne idée. Cette liste serait préconfigurable avec la liste des chaines de hts. Une liste de type
France 2 # france-2.mafreebox.fr
#France 3 # france-3.mafreebox.fr
France 4 # france-4.mafreebox.fr
l'xmltvid n'a qu'une fonction informative (pouvant aider à la configuration [autoréclame]mais pour hts j'ai écris automatics_xmltvids.py)
De plus cella pourrait permettre de rendre le script utilisable sans hts !
Hors ligne
Nague, pourrais-tu lancer un tv_grab_fr_mafreebox_hts.py --verbose warning et retourner la copier coller le log ? (c'est pour compléter la liste des catégories)
[edit] euh avant de faire ça ... ça marche le filtre par catégorie ? (faut tester avec "Movie / Drama" par exemple)
Dernière modification par SnouF (14/12/2016 21:40:41)
Hors ligne
Qu'est ce que tu entends par filtre catégorie ?
Je peux te confirmer que je récupère bien des catégories dans mon Guide. Typiquement, pour Gong, j'ai: Movie / Drama, Cartoons / Puppets, Magazines / Reports / Documentary et Variety Show
J'ai lancé la dernière version du script avec --verbose warning, je récupère uniquement le xml. Tu en as besoin ?
Je suis surpris qu'il n'y a aucun warning. La liste de traduction (ligne 70 à 83) ne me semble pas très complète. Non pas besoin du log
Pour les catégorie dans http://localhost:9981/extjs.html? la case en haut "Filter content type ..." ça marche ?
Hors ligne
Cela fonctionne pour "Movie / Drama" et "Music / Ballet / Dance", les seuls filtres proposés qui sont en commun avec l'EPG.
Je suis surpris, rien avec "Children's / Youth programmes" par exemple?
Hors ligne