Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replays MyTF1 - Erreur - Le flux vidéo n'est pas disponible #1162

Closed
2 of 7 tasks
raydenxxx opened this issue Jun 13, 2023 · 70 comments · Fixed by #1164
Closed
2 of 7 tasks

Replays MyTF1 - Erreur - Le flux vidéo n'est pas disponible #1162

raydenxxx opened this issue Jun 13, 2023 · 70 comments · Fixed by #1164

Comments

@raydenxxx
Copy link

raydenxxx commented Jun 13, 2023

⚠️ Please try the last beta version and check existing issues before issuing a bug. ⚠️

Describe the bug

A clear and concise description of what the bug is: Impossible de lancer les replays des chaines MyTF1

To Reproduce

Steps to reproduce the behaviour:

  1. Aller dans Catch-up TV & More
  2. Aller dans les replays FR
  3. Aller dans les replays MyTF1
  4. Aller dans TMC
  5. Aller dans Infos, Mag & Sport
  6. Cliquer sur Quotidien
  7. Cliquer sur Replay
  8. Lancer n'importe quel replay

Expected behaviour

A clear and concise description of what you expected to happen: Le replay devrait se lancer

Actual behaviour

Tell us what happens instead: Le replay ne se lance pas et une erreur s'affiche "Le flux vidéo n'est pas disponible" puis "Echec de lecture d'un ou plusieurs fichiers"

Screenshots

If applicable, add screenshots to help explain your problem:
IMG_9872

IMG_9871

Your environment

  • Android

  • iOS

  • Linux

  • OSX

  • Raspberry-Pi

  • Windows

  • Other

  • Operating system version/name: Windows 11 et Android TV

  • Kodi version: testé sur 20.1 et 19.5.0

  • Catch-up TV & More version: testé sur 0.2.39 beta 27 et sur 0.2.39 beta 20

  • Installation method: via le repo beta

Additional context

Add any other context about the problem here: les lives ne marchent pas non plus.

Debug log

If you can, please add your debug log information (Tutorial available here: https://kodi.wiki/view/Log_file/Easy):
kodi.log

@raydenxxx
Copy link
Author

une copie du log au moment de l'erreur
2023-06-13 14:02:06.897 T:3476 INFO <general>: initializing python engine. 2023-06-13 14:02:07.484 T:3476 INFO <general>: CPythonInvoker(18, C:\Users\coren\AppData\Roaming\Kodi\addons\plugin.video.catchuptvandmore\addon.py): script successfully run 2023-06-13 14:02:07.550 T:3476 INFO <general>: Python interpreter stopped 2023-06-13 14:02:08.345 T:15372 INFO <general>: initializing python engine. 2023-06-13 14:02:09.604 T:15372 INFO <general>: CPythonInvoker(19, C:\Users\coren\AppData\Roaming\Kodi\addons\plugin.video.catchuptvandmore\addon.py): script successfully run 2023-06-13 14:02:09.677 T:15372 INFO <general>: Python interpreter stopped 2023-06-13 14:02:11.906 T:15620 INFO <general>: initializing python engine. 2023-06-13 14:02:12.894 T:15620 INFO <general>: CPythonInvoker(20, C:\Users\coren\AppData\Roaming\Kodi\addons\plugin.video.catchuptvandmore\addon.py): script successfully run 2023-06-13 14:02:12.902 T:9352 ERROR <general>: Playlist Player: skipping unplayable item: 0, path [plugin://plugin.video.catchuptvandmore/resources/lib/channels/fr/mytf1/get_video_url/?_pickle_=8004955d000000000000007d94288c075f7469746c655f948c1951756f74696469656e206475203132206a75696e2032303233948c08766964656f5f6964948c2464303661666464332d383065392d343239302d383064642d64646366663162303466616494752e] 2023-06-13 14:02:12.966 T:15620 INFO <general>: Python interpreter stopped

@AntM90
Copy link

AntM90 commented Jun 13, 2023

Même problème sur la version MacOS ici

@raydenxxx
Copy link
Author

Je pense que quelque chose a changer chez TF1, ça ne doit plus marcher pour personne

@raydenxxx
Copy link
Author

Et pour info les lives ne marchent pas non plus sur MyTF1, j’ai une erreur qui me dit que je suis pas dans le bon pays et pourtant pas de VPN j’ai bien une IP FR

@AntM90
Copy link

AntM90 commented Jun 13, 2023

Je pense que quelque chose a changer chez TF1, ça ne doit plus marcher pour personne

Aucun doute là dessus je pense

@enigmathix
Copy link

enigmathix commented Jun 13, 2023

Dans le json:

   "media":{
      "id":"13992886",
      "type":"video",
      "error_code":"PERMISSION_DENIED",
      "error_desc":"Permission insuffisante",
...
   "delivery":{
      "code":403,
      "error":"Permission insuffisante",
...

Il semble que l'url pour obtenir ce json a maintenant besoin d'un token.

@enigmathix
Copy link

enigmathix commented Jun 13, 2023

Il semble que TF1 ait ajouté une protection DRM: les videos sont encryptées et il faut obtenir une clé pour les décoder. Le problème est qu'ils peuvent restreindre l'accès aux apps qu'ils veulent pour obtenir cette clé. RIP.

Le json que j'ai mis plus tot montre une erreur de permission avant d'arriver au problème de DRM de la video, donc il y a 2 problèmes: l'un de permission, l'autre de décryption.

@sousouille
Copy link

Question : les replays sont accessibles depuis un navigateur. On obtient un jeton à l'aide d'un clientid. Voici un jeton :

eyJhbGciOiJFUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhYlRlc3QiOnt9LCJleHAiOjE2ODY3ODQ4MjcsImZjZmEiOjAsImZ0Ijp7fSwiaWF0IjoxNjg2Njg0MDI3LCJpZGQiOjAsImlzcyI6ImdpZ3lhIiwibHZsIjoxLCJtc2NiIjpmYWxzZSwibm9BdWRpZW5jZSI6ZmFsc2UsIm5vQ3VzdG9taXphdGlvbiI6ZmFsc2UsIm5vUHJvZmlsaW5nIjpmYWxzZSwicGx0Ijoid2ViIiwic3ViIjoiNTg1ZjJmYTM3Mzk5NDQwMmFjNzM0ZjZjNjQzYTNmMmUifQ.2_iHxUNYD0MlZUtIFYCwBhbZpXfwmLOxoEszm-FRJZF788PpeLB0pu6tvhrD2zdcbtskSckvWMPbnANai71kGQ

Quelle est la difficulté rencontrée ?

@enigmathix
Copy link

enigmathix commented Jun 13, 2023

La difficulté est de répliquer ça dans une app autre qu'un navigateur car le jeton expire au bout de 28 heures. Je pensais que c'était 3 heures, mais c'est bien 28, ou alors ils ont mis un 0 en trop.

{
    "token": "eyJhbGciOiJFUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJhYlRlc3QiOnt9LCJleHAiOjE2ODY3...",
    "refresh_token": "eyJhbGciOiJFUzI1NiIsImtpZCI6ImRlZmF1bHQiLCJ0eXAiOiJKV1QifQ.eyJleHAiOjE3MDI0NDY4MzEsImlhdCI...",
    "ttl": 100800,
    "right": "BASIC"
}

D'après ce que j'ai pu voir, on peut obtenir le token et le refresh token par https://www.tf1.fr/token/gigya/web en fournissant un uid et une signature. Le refresh token est aussi sauvegardé dans les cookies et a une durée de vie de 6 mois, il sert à générer un nouveau jeton mais il y a des chances qu'il change aussi lors du refresh. Reste à trouver l'algorithme pour l'uid et la signature, qui doit certainement aussi nécessiter une clé.

Même en trouvant une solution à ça, il reste le problème du DRM, qui est à mon avis insoluble sans être partenaire de TF1 (c'est le but du DRM).

@sousouille
Copy link

sousouille commented Jun 13, 2023

l'uid à l'air d'être fixe par utilisateur : à la limite il suffit de le renseigner en conf. La signature est liée au timestamp ☹: aucune idée d'où elle sort

@Zovi3U
Copy link

Zovi3U commented Jun 14, 2023

Salut, pour résumer l'erreur "Permission insuffisante" vient du fait qu'il faut désormais une authentification par token avec le header "Authorization" (Authorization: Bearer {token}) pour accéder à l'API. J'ai fait des tests et j'ai l'impression que ce type de header ne traverse pas facilement un proxy, ce n'est pas gagné pour passer le GEO blocage non plus :/

@darodi
Copy link
Contributor

darodi commented Jun 14, 2023

Même en trouvant une solution à ça, il reste le problème du DRM, qui est à mon avis insoluble sans être partenaire de TF1 (c'est le but du DRM).

Un DRM, c'est simplement donner la clé à quelqu'un pour faire une action sans lui dire comment on lui a donné la clé. (Ex: les clés de chiffrement DVD sont sur le DVD!)
Si l'action est faisable via le site, elle est faisable via Kodi/CUTVM.
Maintenant, je n'ai pas dit que ça serait facile.
token+refresh_token, il y a de grandes chances qu'on soit en oauth v2

@enigmathix
Copy link

Vu sur un autre github: si on supprime context=MYTF1 de l'url URL_VIDEO_STREAM dans le code, on évite le DRM et l'autorisation, et on obtient ça dans le json (hls pour moi mais c'est pareil pour dash):
"stream-id":"13970670_hls_nodrm_nomax"
Notez le "nodrm". Problème: ça semble ne marcher que sur les petites videos. Pour Quotidien par exemple, on peut voir les extraits mais pas toute l'émission. Dans ce cas, on obtient une "erreur de delivery".

@Florian-GM
Copy link

Je confirme, plus de live TF1 non plus. Erreur : géo-bloqué

Je n'utilise pas de vpn, aucun changement non plus sur quoi que ça soit.

TF1 a donc changé quelque chose.

@darodi
Copy link
Contributor

darodi commented Jun 14, 2023

Depuis la Belgique, tout semble bloqué, même avec un compte.

** edit ** en acceptant tous les cookies sur le site, la vidéo fonctionne à nouveau

After playing a bit with the page (I even created a free account), the web page seem to require accepting all cookies to access full episodes. If you reject cookies, or in Incognito Mode, the player won't load the video.
Originally posted by @pingu1 in ytdl-org/youtube-dl#32299 (comment)

image

Difficile de vous aider pour l’implémentation dans ces conditions :/

@Jon01993
Copy link

Salut, même problème mais les extraits et exclus fonctionnent alors que ce n'était pas le cas il y a deux jours.
Merci d'avance pour votre aide!!

@Fabien07270
Copy link

Bonjour Même pb depuis quelques jours pour moi. Cela semble général ? Désinstall/réinstall Kodi, Catch up en version beta mais toujours sans succès.
Merci d'avance pour votre aide

@ludopotte
Copy link

ludopotte commented Jun 15, 2023

En attendant la résolution du Problème, installer vStream sur Kodi (Dépôt + Extension ou Beta) au https://github.com/ludopotte/vStream et ensuite aller dans les Rubrique "Rediffusions TV", "Rechercher (TV Replay)"
et ensuite tapez votre recherche. Utiliser vStream avec un Débrideur disponible au www.bit.ly/debrideurkodi

@Jon01993
Copy link

Merci pour le tuyau mais je n'ai pas trouvé les replays de TF1 sur cette extension

@ludopotte
Copy link

ludopotte commented Jun 16, 2023

Oui @Jon01993 c'est normal car tu dois savoir le programme que tu veux rechercher.

@parer55
Copy link

parer55 commented Jun 16, 2023

I have the same problem. Kudos to anyone who can solve this.
J'ai le même problème. Félicitations à celui ou celle qui trouvera la solution.

@tcharlat
Copy link

Je pense qu'il faut ajouter tf1 à la liste des chaines requérant un compte, comme m6, nrj, etc.
Un exemple de comment on peut voir que le code .py pour m6 fonctionne :

https://github.com/Catch-up-TV-and-More/plugin.video.catchuptvandmore/blob/dev/resources/lib/channels/fr/6play.py#L380

Je pense qu'il faut ajouter la saisie des identifiants / password pour le plugin mytf1, et mettre à jour l'accès au stream une fois la requête signée analysée (obtention token, refresh, etc.)

Désolé de ne pouvoir aider, je suis très loin d'avoir un setup pour faire du dev sur ce plugin, bon courage et kudos aux maintainers 👍

@raydenxxx
Copy link
Author

Je pense qu'il faut ajouter tf1 à la liste des chaines requérant un compte, comme m6, nrj, etc. Un exemple de comment on peut voir que le code .py pour m6 fonctionne :

https://github.com/Catch-up-TV-and-More/plugin.video.catchuptvandmore/blob/dev/resources/lib/channels/fr/6play.py#L380

Je pense qu'il faut ajouter la saisie des identifiants / password pour le plugin mytf1, et mettre à jour l'accès au stream une fois la requête signée analysée (obtention token, refresh, etc.)

Désolé de ne pouvoir aider, je suis très loin d'avoir un setup pour faire du dev sur ce plugin, bon courage et kudos aux maintainers 👍

Compte tenu que sur MyTF1.fr quand on est logué on a accès au replay pendant 7 jours je pense que tu as tout à fait raison

@enigmathix
Copy link

Bon j'ai réussi à faire marcher la DRM, mais ça va pas vous aider. J'explique: je n'utilise pas ce plugin, mais j'ai écrit une app pour AppleTV. Elle a cessé de fonctionner comme vous tous, alors je me suis plongé dans la DRM qui est FairPlay chez Apple. Il y a en fait 3 étapes:

  1. obtenir un certificat. facile, il est décrit dans le json des videos, c'est https://drm-fair.tf1.fr/certificate.der
  2. trouver l'asset ID. facile aussi, il est dans le json des videos, par exemple 13994087
  3. obtenir la clef de décryption. c'est là où vous aurez du mal

Pour obtenir cette clef, il faut 3 éléments: le certificat, l'assetID, et l'url pour obtenir la clef. Cet url est aussi dans le json. Pour fairplay, c'est https://drm-fair.tf1.fr/acquire?id=13994087... dans ce cas.
Et c'est la qu'est le problème: il faut aussi un bout de donnée qui est fourni par l'app ou l'OS: c'est le SPC (server playback context). Pour moi, c'est tvOS qui me le donne. Dans Safari, c'est l'extension EME du webkit qui le donne. Quand on le passe au serveur de TF1, on reçoit en échange une clef de décryption que l'on passe à l'OS pour décrypter la video. De ce que je comprends pour Fairplay au moins, c'est que l'algorithme de génération de ce SPC n'est pas public et la clef pas accessible autrement.

Il me reste encore à résoudre le problème de l'obtention du token. Pour l'instant je le copie manuellement de Safari en allant sur mytf1.fr et il est valable quelques heures.

@darodi
Copy link
Contributor

darodi commented Jun 16, 2023

@enigmathix

Merci pour ces infos.
Fairplay est spécifique au monde apple.

Sur mytf1, les autres browsers utilisent du mpeg-dash mpd et widevine drm, pas du fairplay.
Exemple:
https://mediainfo.tf1.fr/mediainfocombo/13694d96-440a-45dc-86db-90c45c57ac63?pver=5010000&context=MYTF1&topDomain=unknown&platform=web&device=desktop&os=windows&osVersion=10.0&playerVersion=5.10.0&productName=mytf1&productVersion=2.59.1&browser=firefox&browserVersion=114

{
...
"delivery": {
    "code": 200,
    "url": "https://vod-das.cdn-0.diff.tf1.fr/eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjaXAiOiIyMTMuMjEzLjIwOS4xNzEiLCJjbWNkIjoiIiwiZXhwIjoxNjg2OTcxNTI1LCJnaWQiOiIxNmQ2OTQ5ZmIzMjU0NTUwODU3ZTg3MTA3MDQ2NGY2ZSIsImlhdCI6MTY4Njk1NzEyNSwiaXNzIjoiZGVsaXZlcnkiLCJtYXhiIjoyODAwMDAwLCJzdGVtIjoiLzIvVVNQLTB4MC8zMi84OC8xMzk5MzI4OC9zc20vMDVlMTBlNzEwNDI2NWZmMDRjYTJlYzJlNGJlMzY3OTMwYWE1OWUzYTBkZTVjZDQzM2YyMWM5NGMzMjU0NTQ4OS5pc20vMTM5OTMyODgubXBkIiwic3ViIjoiMTZkNjk0OWZiMzI1NDU1MDg1N2U4NzEwNzA0NjRmNmUifQ.js10jHKp7LxKpPtr2Mxx4YIq27FSF6N6miDStg89DMs/2/USP-0x0/32/88/13993288/ssm/05e10e7104265ff04ca2ec2e4be367930aa59e3a0de5cd433f21c94c32545489.ism/13993288.mpd",
    "country": "BE",
    "format": "dash",
    "drm": "widevine",
    "drm-server": "https://widevine-proxy-m.prod.p.tf1.fr/proxy?id=13993288&rn=1&ssc=1b281c65-fe77-416b-864d-628017f2e789&si=46549bb293595ba980b40caf12d965c903bb3a3f9ddcbb00e45449edeff56984&e=1686971525",
    "drms": [
      {
        "name": "widevine",
        "url": "https://widevine-proxy-m.prod.p.tf1.fr/proxy?id=13993288&rn=1&ssc=1b281c65-fe77-416b-864d-628017f2e789&si=46549bb293595ba980b40caf12d965c903bb3a3f9ddcbb00e45449edeff56984&e=1686971525"
      },
...
}

C'est ce que nous utilisons dans CUTVM aussi.
Inputstream adaptive, le plugin utilisé pour la gestion drm ne gère pas le fairplay
https://github.com/xbmc/inputstream.adaptive/wiki#supported-drm

J'ai commencé l'implémentation du login, j'essayerai de continuer ce we

@darodi
Copy link
Contributor

darodi commented Jun 17, 2023

Originally posted by @ludopotte in #1162 (comment)

En attendant la résolution du Problème, installer vStream sur Kodi (Dépôt + Extension ou Beta) au https://github.com/[SCRAMBLED]/vStream et ensuite aller dans les Rubrique "Rediffusions TV", "Rechercher (TV Replay)" et ensuite tapez votre recherche. Utiliser vStream avec un Débrideur disponible au www.bit.ly/[SCRAMBLED]

  1. vStream n'est pas dans la liste officielle des addons Kodi, je vous laisse deviner pourquoi... en effet, ce n'est pas très légal
    https://kodi.wiki/view/Official:Forum_rules/Banned_add-ons
  2. Le repository habituel de vstream n'est pas celui là
    Je ne connais pas ludopotte mais, à votre place, je me méfierais avant d'installer un repository sorti de nulle part avec uniquement 3 stars dans github. (qui pointe vers https://github.com/mr[SCRAMBLED]2/mr[SCRAMBLED]2.github.io qui a encore moins de stars) et des débrideurs qui sont certainement des liens sponsorisés

@joaopa00
Je te poke si tu n'avais pas suivi dans la discussion
J'imagine que les guidelines ici sont les mêmes que la position officielle de Kodi? scrambler les urls de ce post #1162 (comment)_?
https://kodi.wiki/view/Official:Forum_rules/Banned_add-ons

@ludopotte
Copy link

ludopotte commented Jun 17, 2023

Pour Infos, l'Extension vStream que je propose est bien réel sans risque car c'est une version de la Beta Officielle de vStream que je mets à disposition pour les gens qui est validée par l'Equipe de vStream . Pour le dépôt de vStream que je propose, c'est l'officiel. Par rapport au débrideurs, c'est des débrideurs officiels que j'utilise pour Kodi sans risque. Au gens de faire leur choix !

@darodi
Copy link
Contributor

darodi commented Jun 17, 2023

@joaopa00 @ludopotte

En effet, si des gens veulent utiliser des plugins utilisant des flux pirates, c'est leur choix.
Si des gens veulent braquer une banque, si des gens veulent rouler à contre sens sur l'autoroute, c'est leur choix :)
Les gens peuvent faire n'importe quoi, mais il y a des aspects légaux.
Je préviens donc.

Vu ces aspects, c'est plutôt la promotion de ce genre de plugin dans le repo de CUTVM qui me pose problème.
J'admets qu'il n'y a pas de " Code of conduct " dans le repository de CUTVM. (à rajouter peut être?)
Je laisse donc @joaopa00 décider.

@ludopotte
Copy link

Je comprends @darodi mais moi je suis la pour partager, rien de plus. Donc @joaopa00 décider.

@darodi
Copy link
Contributor

darodi commented Jun 18, 2023

OK je pense avoir trouvé
quand le
web_utils.get_random_ua()
renvoie

{'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_1) AppleWebKit/602.2.14 (KHTML, like Gecko) Version/10.0.1 Safari/602.2.14',
...}

ça passe en fairplay on dirait

@darodi
Copy link
Contributor

darodi commented Jun 18, 2023

@joaopa00
et ça marche sur mon rpi 😃
j'ai pushé

@sousouille
Copy link

Question : je suis sur le canal beta sur Android TV, comment installer d'ores et déjà la dernière #1164 : j'ai tenté de forcer la màj mais rien n'apparait : il faut attendre un build ?

@raydenxxx
Copy link
Author

raydenxxx commented Jun 18, 2023

Question : je suis sur le canal beta sur Android TV, comment installer d'ores et déjà la dernière #1164 : j'ai tenté de forcer la màj mais rien n'apparait : il faut attendre un build ?

Si tu ne veux pas attendre que le code soit poussé dans la bêta il faut l’installer à la main.

5BDF43B6-E529-4742-97C0-283D17135A81

@raydenxxx
Copy link
Author

Je viens de tester ça marche, merci à tous! ❤️

@enigmathix
Copy link

enigmathix commented Jun 18, 2023

Une version simplifiée du code car il n'y a pas besoin du bootstrap si on restreint les paramètres du login:

import requests
import json

apiKey = '3_hWgJdARhz_7l1oOp3a8BDLoR9cuWZpUaKG4aqF7gum9_iK3uTZ2VlDBl8ANf8FVk'

formData = {
'loginID': 'USERNAME', #TODO
'password': 'PASSWORD', #TODO
'APIKey': apiKey,
}

tf1Session = requests.Session()

# get login info
r = tf1Session.post('https://compte.tf1.fr/accounts.login', data=formData)
if r.status_code == 200:
    js = json.loads(r.content)

    formData = {
    'consent_ids': [ "1", "2", "3", "4", "10001", "10003", "10005", "10007", "10013", "10015", "10017", "10019", "10009", "10011", "13002", "13001", "10004", "10014", "10016", "10018", "10020", "10010", "10012", "10006", "10008"],
    'signature': js['UIDSignature'],
    'timestamp': int(js['signatureTimestamp']),
    'uid': js['UID'],
    }

    # get tokens
    r = tf1Session.post('https://www.tf1.fr/token/gigya/web', json=formData)

    if r.status_code == 200:
        js = json.loads(r.content)
        print(js)

@coolben54
Copy link

Merci beaucoup, le replay de TF1 refonctionne sur mon Raspberry Pi
Par contre, la liste des épisodes disponibles est maintenant réduite à 1 semaine comme c'est le cas sur l'interface web de MyTF1.
Et je me demandais qu'est ce qui permettait avant d'avoir accès avant à une liste plus large ?
Par exemple, on avait la possibilité de voir tous les épisodes de Koh Lanta jusqu'à 1 semaine après que le dernier épisode de la saison passe à la télé.

@raydenxxx
Copy link
Author

Merci beaucoup, le replay de TF1 refonctionne sur mon Raspberry Pi
Par contre, la liste des épisodes disponibles est maintenant réduite à 1 semaine comme c'est le cas sur l'interface web de MyTF1.
Et je me demandais qu'est ce qui permettait avant d'avoir accès avant à une liste plus large ?
Par exemple, on avait la possibilité de voir tous les épisodes de Koh Lanta jusqu'à 1 semaine après que le dernier épisode de la saison passe à la télé.

TF1 a clairement changé son API et maintenant on est obligés d’être logués pour consulter leurs replays.
Sur un compte standard les replays sont dispos 7 jours.
Sur un compte Max (payant) on peut avoir une durée plus longue.

@Fabien07270
Copy link

Bonjour, ça fonctionne aussi très bien pour moi sur android tv en installant #1114 à la main et en renseignant le compte mytf1 dans les paramètres.
Merci à tous pour le travail et bonne journée.

@camherry
Copy link

Bonjour à tous,
Merci pour les infos et le correctif, j'ai également téléchargé et installé la version de la branche Dev.
En revanche, ce qui est dommage, mais qui se comprend, c'est qu'il a fallu créer un compte sur TF1 pour continuer à bénéficier des replays, mais il n'est plus possible d'avoir les replays issus du mytf1 max, puisque notre compte n'est pas un compte qui a souscrit à cette offre c'est ça ?

@lilie004
Copy link

Bonjour à tous 👋
Comment faire sur fire tv svp?
Bonne journée
Merci

@camherry
Copy link

Depuis le downloader, si vous entrez l'URL suivante : https://github.com/Catch-up-TV-and-More/plugin.video.catchuptvandmore/archive/refs/heads/dev.zip

ça devrait permettre d'importer le zip sur votre firetv, ensuite depuis l'application Kodi, vous devriez installer l'extension ZIP qui se trouve dans l'arborescence du firetv

@lilie004
Copy link

Merci beaucoup ça fonctionne 👍👍👍
Du coup on aura plus du tout accès au avantage de my tf1 max?

@darodi
Copy link
Contributor

darodi commented Jun 19, 2023

Par contre, la liste des épisodes disponibles est maintenant réduite à 1 semaine comme c'est le cas sur l'interface web de MyTF1. Et je me demandais qu'est ce qui permettait avant d'avoir accès avant à une liste plus large ?

Merci beaucoup ça fonctionne 👍👍👍 Du coup on aura plus du tout accès au avantage de my tf1 max?

Il est vrai que le code de CUTVM actuel fait le login avant de regarder une vidéo.
Si on change pour se loguer avant de faire la liste des contenus disponibles, ça pourrait peut être ramener une liste plus large et marcher avec plus de contenu.
Je n'ai pas de compte Max (payant) pour tester ça, désolé.

@kevlare
Copy link

kevlare commented Jun 19, 2023

J'ai installé la nouvelle beta et je peux lancer la vidéo mais j'ai seulement le son. Sur FranceTV j'ai son et vidéo. Je suis également connecté depuis la France. J'utilise une Shield TV.
PXL_20230619_191203174 MP

@Zovi3U
Copy link

Zovi3U commented Jun 19, 2023

Super taff ;) quelqu'un a testé la beta sur le live TV avec un VPN ou un proxy ?

@enigmathix
Copy link

enigmathix commented Jun 20, 2023

Une version simplifiée du code car il n'y a pas besoin du bootstrap si on restreint les paramètres du login:

import requests
import json

tf1Session = requests.Session()
(...)

Pour l'histoire, voila comment rafraichir le token lors de l'expiration après 28h si on veut pas refaire de login:

        # refresh token
        r = tf1Session.post('https://www.tf1.fr/token/refresh')
        if r.status_code == 200:
            js = json.loads(r.content)
            print(js)

Le refresh token étant sauvegardé dans un cookie, il n'y a pas de paramètres à passer.
La question peut se poser si le fait de décentraliser le refresh token dans le client comme ça peut empêcher l'accès simultané à plus d'un client (app ou appareil), mais non, ça marche quand même. Leurs serveurs doivent garder une liste de refresh tokens valides.

@darodi
Copy link
Contributor

darodi commented Jun 20, 2023

@enigmathix

Merci pour ces infos.

Le refresh token étant sauvegardé dans un cookie, il n'y a pas de paramètres à passer. La question peut se poser si le fait de décentraliser le refresh token dans le client comme ça peut empêcher l'accès simultané à plus d'un client (app ou appareil), mais non, ça marche quand même. Leurs serveurs doivent garder une liste de refresh tokens valides.

Oui c'est le principe en oauth v2.
Le login se fait souvent en passant le login, mot de passe, et parfois un id de périphérique (ici le TCPID généré on dirait).
Ça génère un access_token avec une validité courte et un refresh_token avec une validité plus longue.
Le tout est stocké côté serveur.

On pourrait améliorer le code pour stocker le refresh_token et sa date de validité.
Si le refresh_token est expiré, on se relogue.
Si le refresh_token est presque expiré, on le refresh

Ça pourrait peut être aussi corriger les problèmes de contenu pour l'abonnement max.
On serait logué au moment de la demande de liste de contenu.

J'essayerai de trouver le temps de tester et d'implémenter ça.

@enigmathix
Copy link

enigmathix commented Jun 20, 2023

Oui, j'ai un serveur qui repose aussi sur oauth2, mais je m'embête pas à envoyer les refresh tokens aux clients pour en garder une liste sur le serveur. J'en garde 1 par utilisateur, et tous les clients d'un utilisateur utilisent le même sans avoir besoin de le savoir ou de gérer son expiration.

L'autre truc qui m'intrigue est que leur code client récupère le token mais ignore le TTL (time to live) de 28h, il n'est sauvegardé nulle part (à moins qu'il soit hard-codé ailleurs mais ça serait moche). Du coup je me demande ce qui se passerait si leur client restait en mémoire pendant 28h sans se reconnecter. Est-ce qu'il redemande un token en cas d'erreur? Ca ferait un peu bizarre. Catch-up (et mon app) pourrait faire ça plus proprement. Ce cas devrait arriver plus souvent qu'un refresh token qui expire, il faudrait ne jamais faire de refresh pendant 6 mois, autant dire qu'on ne regarde jamais TF1.

@jeanmi-git
Copy link

J'ai installé la nouvelle beta et je peux lancer la vidéo mais j'ai seulement le son. Sur FranceTV j'ai son et vidéo. Je suis également connecté depuis la France. J'utilise une Shield TV. PXL_20230619_191203174 MP

C'est la même chose pour moi, le son sans l'image, depuis que j'ai entré mes identifiants MyTF1.
Il y a une solution à ce problème ?

@joaopa00
Copy link
Contributor

joaopa00 commented Jun 22, 2023

Pour ce genre de bug, la démarche est toujours la même. S'assurer d'avoir la dernière version disponible de Inputstream Adaptive. Actuellement, c'est la version 2.3.9. Si IA est à jour et le problème persiste, il faut envoyer un rapport de bug à IA. Si la dernière version n'est pas disponible pour votre appareil, il faut contacter son revendeur.

@kevlare
Copy link

kevlare commented Jun 22, 2023

Merci, pour la réponse joaopa00 j'ai vérifié, j'ai la version 20.3.9 de IA, j'ai donc soumis un bug avec IA. Voici le lien:
xbmc/inputstream.adaptive#1299

@0x0040
Copy link

0x0040 commented Jun 25, 2023

Le problème est toujours présent malgré l'utilisation des dernières mises à jour pour certain Replay uniquement : Mask Singer, The Voice, Koh-Lanta...
Pour la série HPI, aucun problème avec les épisodes de la saison 2 à l'inverse de la saison 3 où on a le message d'erreur...

@enigmathix
Copy link

Tu as TF1 MAX? Si tu l'as pas, c'est normal que tu puisses pas voir tout ça, ce sont des programmes vieux de plus de 7 jours.

@jeanmi-git
Copy link

Le problème est encore là pour moi :'(

@darodi
Copy link
Contributor

darodi commented Aug 8, 2023

@jeanmi-git

je viens de tester sous android avec mon téléphone.
Kodi 20, dernière version pas de soucis.
Créer un nouveau ticket avec toutes les infos nécessaires (version de kodi, version de inpustream adaptive, ...) et les logs.
Merci

@Souan79
Copy link

Souan79 commented Aug 14, 2023

Bonjour à tous,
Merci pour toutes ces astuces que même une mamie de plus de 70 ans a réussi à mettre en oeuvre et ça fonctionne : l'accès au replay de tf1 sur 7 jours glissants est accessible de nouveau, mais simplement en visionnage.
Existe-t-il une possibilité d'enregistrement ? j'ai essayé 1000 manips sans succès. Sur les autres chaines on a un bouton "télécharger", mais pour TF1 et M6 il n'y a pas.

@joaopa00
Copy link
Contributor

M6 et TF1 interdisent le téléchargement des émissions par une protection numérique. Comme CUTVM est un logiciel légal, aucun moyen de contourner ces protections n'est et ne sera impléménté.

@Souan79
Copy link

Souan79 commented Aug 14, 2023

Merci, je comprends.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.