xbmc / inputstream.adaptive

kodi inputstream addon for several manifest types
Other
443 stars 239 forks source link

Can fetch video quality but can't stream it #1248

Closed aicynide closed 1 year ago

aicynide commented 1 year ago

Bug report

Describe the bug

Here is a clear and concise description of what the problem is:

At the time of fresh installation it worked flawlessly in nexus Android but after that never able to syream video

Expected Behavior

Here is a clear and concise description of what was expected to happen:

Stream mpd video with licenseUrl normally

Actual Behavior

Open "TV" (Simple Iptv client) Try to play a widevine video Video willn't Stream

Possible Fix

I think widevine issue in android kodi 20 nexus

To Reproduce

Steps to reproduce the behavior:

  1. Add playlist in Simple IPTV Client
  2. TRY to Stream a tv channel
  3. Get error

Debuglog

The debuglog can be found here:

MPD/M3U8s/ISM

An example or copy of a manifest (or manifests for HLS - master and variants) can be found here: https://delta9tatasky.akamaized.net/out/i/5405478.mpd

License key - https://tataplay.live.ott.irdeto.com/Widevine/getlicense?CrmId=tatasky&AccountId=tatasky&ContentId=400000322&ls_session=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImNvbnRyb2xfc2lnbmluZ19rZXlfcHJvZHVjdGlvbl8xNjYxMjc5NjMyMDEwIn0.eyJzdWIiOiIxMzI3NDU1ODY5IiwiaXNlIjp0cnVlLCJqdGkiOiJlNTcwZDY3Zi04NTQ4LTRmOTItOThjOC0xNTQ0YjBiZTVlNWQiLCJhaWQiOiJ0YXRhc2t5IiwiZXhwIjoxNjgzMDYwNDUzLCJuYW1lIjoidW5kZWZpbmVkIiwiaWF0IjoxNjgyOTc0MDUzLCJlbnQiOlt7ImVwaWQiOiJTdWJzY3JpcHRpb25fQnJvd3Nlcl9TdHJlYW1pbmciLCJiaWQiOiIxMDAwMDAxNTIzIn0seyJlcGlkIjoiU3Vic2NyaXB0aW9uX0Jyb3dzZXJfU3RyZWFtaW5nIiwiYmlkIjoiMTAwMDAwMTAzOCJ9LHsiZXBpZCI6IlN1YnNjcmlwdGlvbl9Ccm93c2VyX1N0cmVhbWluZyIsImJpZCI6IjEwMDAwMDAwMzMifSx7ImVwaWQiOiJTdWJzY3JpcHRpb25fQnJvd3Nlcl9TdHJlYW1pbmciLCJiaWQiOiIxMDAwMDAwMDAyIn0seyJlcGlkIjoiU3Vic2NyaXB0aW9uX0Jyb3dzZXJfU3RyZWFtaW5nIiwiYmlkIjoiMTAwMDAwMTAzNSJ9LHsiZXBpZCI6IlN1YnNjcmlwdGlvbl9Ccm93c2VyX1N0cmVhbWluZyIsImJpZCI6IjEwMDAwMDAwMDEifV0sImNzbW8iOnsibWFzIjoiNiIsImR0IjoidHBtYSIsIm1hc2QiOiIyIn0sImlzcyI6InRwbWFfd2ViIn0.6G8oRx704uorxtBy8qn1esZvJOn8oIpm_2cN6aed4rs

Screenshots

Here are some links or screenshots to help explain the problem:

Additional context or screenshots (if appropriate)

Here is some additional context or explanation that might help:

Your Environment

Used Operating system:

note: Once the issue is made we require you to update it with new information should that be required. Team Kodi will consider your problem report however, we will not make any promises the problem will be solved.

glennguy commented 1 year ago

Looking at your log, the license request is failing.

2023-05-02 02:25:53.806 T:31111   error <general>: CCurlFile::Open - <https://tataplay.live.ott.irdeto.com/Widevine/getlicense?CrmId=tatasky&AccountId=tatasky&ContentId=400000131&ls_session=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImNvbnRyb2xfc2lnbmluZ19rZXlfcHJvZHVjdGlvbl8xNjYxMjc5NjMyMDEwIn0.eyJzdWIiOiIxMzI3NDU1ODY5IiwiaXNlIjp0cnVlLCJqdGkiOiJmOGFiNzg2OS0yMGIxLTRiZWItOTVjYS0wYzdjMGMyMTMyZTMiLCJhaWQiOiJ0YXRhc2t5IiwiZXhwIjoxNjgzMDYwOTM5LCJuYW1lIjoidW5kZWZpbmVkIiwiaWF0IjoxNjgyOTc0NTM5LCJlbnQiOlt7ImVwaWQiOiJTdWJzY3JpcHRpb25fQnJvd3Nlcl9TdHJlYW1pbmciLCJiaWQiOiIxMDAwMDAxNTIzIn0seyJlcGlkIjoiU3Vic2NyaXB0aW9uX0Jyb3dzZXJfU3RyZWFtaW5nIiwiYmlkIjoiMTAwMDAwMTAzOCJ9LHsiZXBpZCI6IlN1YnNjcmlwdGlvbl9Ccm93c2VyX1N0cmVhbWluZyIsImJpZCI6IjEwMDAwMDAwMzMifSx7ImVwaWQiOiJTdWJzY3JpcHRpb25fQnJvd3Nlcl9TdHJlYW1pbmciLCJiaWQiOiIxMDAwMDAwMDAyIn0seyJlcGlkIjoiU3Vic2NyaXB0aW9uX0Jyb3dzZXJfU3RyZWFtaW5nIiwiYmlkIjoiMTAwMDAwMTAzNSJ9LHsiZXBpZCI6IlN1YnNjcmlwdGlvbl9Ccm93c2VyX1N0cmVhbWluZyIsImJpZCI6IjEwMDAwMDAwMDEifV0sImNzbW8iOnsibWFzIjoiNiIsImR0IjoidHBtYSIsIm1hc2QiOiIyIn0sImlzcyI6InRwbWFfd2ViIn0.XmaAEDUN0_lrmxVvbr0bu3B> Failed with code 401:

2023-05-02 02:25:53.806 T:31111   error <general>: AddOnLog: inputstream.adaptive: License server returned failure

Are you dynamically generating the license key for each playback? Can you compare this to what's being sent when you access the content in a browser? Decoding the ls_session token shows it was created about 15 minutes before the log line above. Does this sound right?

Note that debug logging was disabled in the attached log so there's very limited info in it.

If you enable debug logging and enable component logging for curl you should be able to see the content of the response which sometimes has something useful in it.

Apart from this we're limited in how we can help from this end.

aicynide commented 1 year ago

Here is the debug log - Please provide your email I'll share you my playlist also which contains mpd and license url of all channels ( IPTV simple client add-on to play) I can play it fine in https://bitmovin.com/demos/drm

aicynide commented 1 year ago

@glennguy I guess you already have got the playlist url 😉

glennguy commented 1 year ago

Unfortunately I can't access the mpd file from my location. If you turn on cURL logging and repeat trying to playback and post the log it should give a hint why the license request fails.

aicynide commented 1 year ago

@glennguy use a pajeet vpn Here is the debug log with cURL, pvr, epg enabled

glennguy commented 1 year ago

As suggested the error is revealed: "code":100209,"message":"An error occurred while trying to parse the authentication token 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsI...... which is the value for ls_session in the license request url.

I've tried using VPN and still getting region blocked - my garbage VPN shows London apparently to circumvent new privacy laws in this service's country...

Next step.

Can you please use the bitmoving player and capture a HAR file to post here?

(assuming chrome)

  1. visit https://bitmovin.com/demos/drm
  2. open devtools (press f12)
  3. click network tab
  4. make sure 'preserve log' is checked
  5. put mpd and license url in player, click load and try to play video.
  6. as soon as playback starts, stop it.
  7. right click in part of dev tools with the list of urls and choose 'Save all as HAR with content'
  8. rename file to .txt
  9. attach to your comment
aicynide commented 1 year ago

@glennguy

glennguy commented 1 year ago

Thanks for the har file.

I haven't been able to get any closer for you.

Is there an add-on for this or is it just a playlist? Are you the developer? Or just an end user? How often is the playlist refreshed? I'm shooting in the dark here.

aicynide commented 1 year ago

I'm an end user Playlist is - check your email from github about this issue comment. I've removed url here Add-on is https://github.com/kodi-pvr/pvr.iptvsimple

glennguy commented 1 year ago

Ok thanks for playlist url.

No problem here when playing a stream from a fresh copy of the playlist: image

What I think your (and previously my) problem is, is trying to play a stream based off of a stale copy of this playlist.

Try changing the setting in iptvsimple to refresh the playlist more often, maybe once every 10 minutes and see if that works.

aicynide commented 1 year ago

kodi.log

aicynide commented 1 year ago

Help me I set refresh playlist every 10 minutes still no channel is playing

aicynide commented 1 year ago

Log https://github.com/xbmc/inputstream.adaptive/files/11436159/kodi.log

aicynide commented 1 year ago

@glennguy please check log, i set refresh playlist to 10 minutes, still not playing

CastagnaIT commented 1 year ago

please play the stream on webbroser as specified on comment above https://github.com/xbmc/inputstream.adaptive/issues/1248#issuecomment-1536964579 and provide HAR file if it is played with success

glennguy commented 1 year ago

I checked the log.

Log shows kodi starting, stream failing to play, THEN the playlist is updated. Try changing to 5 minutes and make sure it's actually updated before you try playback.

aicynide commented 1 year ago

I changed refreshing mode to 4 minutes but still same issue. Kodi v21.0-Alpha Log - kodi.log

aicynide commented 1 year ago
aicynide commented 1 year ago

@glennguy

I changed refreshing mode to 4 minutes but still same issue. Kodi v21.0-Alpha Log - kodi.log

glennguy commented 1 year ago

All I can see in the log is that Kodi was started and you tried to play the stream 25 seconds later.

I cannot see any evidence that the playlist was refreshed, so maybe iptvsimple had a stale one? Try changing to one minute, waiting 2 minutes and see if you have more luck. Apart from this we can't help you here, suggest contacting whoever supplies this playlist for help, maybe other users have success with Kodi ?

Is there alternative IPTV Simple client add-on?

No.

Next time please turn on debug logging in settings (not component logging though please) and restart Kodi, then capture a log.

aicynide commented 1 year ago

Log - kodi.log

aicynide commented 1 year ago

Can you try playing it in fresh installation isolated kodi environment and tell me how to reproduce it?

glennguy commented 1 year ago

I managed to get playback in Windows 11. Can you try in that environment please? I no longer have access to a VPN to India.

aicynide commented 1 year ago

Can you try playing it in fresh installation isolated kodi environment and tell me how to reproduce it?

Log - kodi.log

Previous log. 👆

I'll try in Windows 11 soon. Had tried in Windows 10 with widevine installed using InputStreamHelper add-on but playback failed

glennguy commented 1 year ago

Windows 10 would be fine as well, I would expect the exact same results as win11.

Maybe your Android device has fake L1?

glennguy commented 1 year ago

Previous log shows a fresh copy of the playlist

Relevant part to me is this

2023-06-30 19:43:02.202 T:8914    debug <general>: AddOnLog: inputstream.adaptive: Entering encryption section
2023-06-30 19:43:02.521 T:8914    debug <general>: AddOnLog: inputstream.adaptive: Requesting new Service Certificate
2023-06-30 19:43:02.522 T:8914    debug <general>: AddOnLog: inputstream.adaptive: MediaDrm initialized (Device unique ID size: 32, System ID: 7176, Security level: L1)
2023-06-30 19:43:02.523 T:8914    debug <general>: AddOnLog: inputstream.adaptive: Initializing stream with KID: 930f57eb8475524593ee585314c6dad3
2023-06-30 19:43:02.556 T:8914    debug <general>: AddOnLog: inputstream.adaptive: Session ID: sid39, Max security level: 6
2023-06-30 19:43:02.561 T:8914    debug <general>: AddOnLog: inputstream.adaptive: Key request successful size: 2
2023-06-30 19:43:02.567 T:8914    debug <general>: CurlFile::Open - <https://tataplay.live.ott.irdeto.com/Widevine/getlicense?CrmId=tatasky&AccountId=tatasky&ContentId=400001053&ls_session=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImNvbnRyb2xfc2lnbmluZ19rZXlfcHJvZHVjdGlvbl8xNjYxMjc5NjMyMDEwIn0.eyJzdWIiOiIxMzI3NDU1ODY5IiwiaXNlIjp0cnVlLCJqdGkiOiIwNTA3NTc1MS0yY2ZkLTQ1ZTYtOWIwZC1jMmY4MDlhMzk1NzUiLCJhaWQiOiJ0YXRhc2t5IiwiZXhwIjoxNjg4MjIwNzM1LCJuYW1lIjoidW5kZWZpbmVkIiwiaWF0IjoxNjg4MTM0MzM1LCJlbnQiOlt7ImVwaWQiOiJTdWJzY3JpcHRpb25fQnJvd3Nlcl9TdHJlYW1pbmciLCJiaWQiOiIxMDAwMDAxNTIzIn0seyJlcGlkIjoiU3Vic2NyaXB0aW9uX0Jyb3dzZXJfU3RyZWFtaW5nIiwiYmlkIjoiMTAwMDAwMTAzOCJ9LHsiZXBpZCI6IlN1YnNjcmlwdGlvbl9Ccm93c2VyX1N0cmVhbWluZyIsImJpZCI6IjEwMDAwMDAwMzMifSx7ImVwaWQiOiJTdWJzY3JpcHRpb25fQnJvd3Nlcl9TdHJlYW1pbmciLCJiaWQiOiIxMDAwMDAwMDAyIn0seyJlcGlkIjoiU3Vic2NyaXB0aW9uX0Jyb3dzZXJfU3RyZWFtaW5nIiwiYmlkIjoiMTAwMDAwMTAzNSJ9LHsiZXBpZCI6IlN1YnNjcmlwdGlvbl9Ccm93c2VyX1N0cmVhbWluZyIsImJpZCI6IjEwMDAwMDAwMDEifV0sImNzbW8iOnsibWFzIjoiNiIsImR0IjoidHBtYSIsIm1hc2QiOiIyIn0sImlzcyI6InRwbWFfd2ViIn0.TwJOBSKInc6Aj3my_37lBK_>
2023-06-30 19:43:02.567 T:8914    debug <general>: easy_acquire - Created session to https://tataplay.live.ott.irdeto.com
2023-06-30 19:43:02.792 T:8837    debug <general>: cached image 'special://masterprofile/Thumbnails/f/fed02830.png' size 720x720
2023-06-30 19:43:02.877 T:8837    debug <general>: CurlFile::Open - <https://ltsk-cdn.s3.eu-west-1.amazonaws.com/jumpstart/Temp_Live/cdn/HLS/Channel/imageContent-340-j5jmiei0-v1/imageContent-340-j5jmiei0-m1.png>
2023-06-30 19:43:02.921 T:8914  warning <general>: AddOnLog: inputstream.adaptive: SaveServiceCertificate: Empty Service Certificate
2023-06-30 19:43:02.921 T:8914    debug <general>: AddOnLog: inputstream.adaptive: License update successful
2023-06-30 19:43:02.923 T:7481    debug <general>: AddOnLog: inputstream.adaptive: onEvent: 2 arrived, #decrypter: 1
2023-06-30 19:43:03.120 T:8914    debug <general>: AddOnLog: inputstream.adaptive: Key request successful size: 2583
2023-06-30 19:43:03.123 T:8914    debug <general>: CurlFile::Open - <https://tataplay.live.ott.irdeto.com/Widevine/getlicense?CrmId=tatasky&AccountId=tatasky&ContentId=400001053&ls_session=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImNvbnRyb2xfc2lnbmluZ19rZXlfcHJvZHVjdGlvbl8xNjYxMjc5NjMyMDEwIn0.eyJzdWIiOiIxMzI3NDU1ODY5IiwiaXNlIjp0cnVlLCJqdGkiOiIwNTA3NTc1MS0yY2ZkLTQ1ZTYtOWIwZC1jMmY4MDlhMzk1NzUiLCJhaWQiOiJ0YXRhc2t5IiwiZXhwIjoxNjg4MjIwNzM1LCJuYW1lIjoidW5kZWZpbmVkIiwiaWF0IjoxNjg4MTM0MzM1LCJlbnQiOlt7ImVwaWQiOiJTdWJzY3JpcHRpb25fQnJvd3Nlcl9TdHJlYW1pbmciLCJiaWQiOiIxMDAwMDAxNTIzIn0seyJlcGlkIjoiU3Vic2NyaXB0aW9uX0Jyb3dzZXJfU3RyZWFtaW5nIiwiYmlkIjoiMTAwMDAwMTAzOCJ9LHsiZXBpZCI6IlN1YnNjcmlwdGlvbl9Ccm93c2VyX1N0cmVhbWluZyIsImJpZCI6IjEwMDAwMDAwMzMifSx7ImVwaWQiOiJTdWJzY3JpcHRpb25fQnJvd3Nlcl9TdHJlYW1pbmciLCJiaWQiOiIxMDAwMDAwMDAyIn0seyJlcGlkIjoiU3Vic2NyaXB0aW9uX0Jyb3dzZXJfU3RyZWFtaW5nIiwiYmlkIjoiMTAwMDAwMTAzNSJ9LHsiZXBpZCI6IlN1YnNjcmlwdGlvbl9Ccm93c2VyX1N0cmVhbWluZyIsImJpZCI6IjEwMDAwMDAwMDEifV0sImNzbW8iOnsibWFzIjoiNiIsImR0IjoidHBtYSIsIm1hc2QiOiIyIn0sImlzcyI6InRwbWFfd2ViIn0.TwJOBSKInc6Aj3my_37lBK_>
2023-06-30 19:43:03.253 T:8914    error <general>: CCurlFile::CReadState::FillBuffer - (0xb4000074d5bfe850) Failed: HTTP returned code 401
2023-06-30 19:43:03.253 T:8914    error <general>: CCurlFile::Open - <https://tataplay.live.ott.irdeto.com/Widevine/getlicense?CrmId=tatasky&AccountId=tatasky&ContentId=400001053&ls_session=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImNvbnRyb2xfc2lnbmluZ19rZXlfcHJvZHVjdGlvbl8xNjYxMjc5NjMyMDEwIn0.eyJzdWIiOiIxMzI3NDU1ODY5IiwiaXNlIjp0cnVlLCJqdGkiOiIwNTA3NTc1MS0yY2ZkLTQ1ZTYtOWIwZC1jMmY4MDlhMzk1NzUiLCJhaWQiOiJ0YXRhc2t5IiwiZXhwIjoxNjg4MjIwNzM1LCJuYW1lIjoidW5kZWZpbmVkIiwiaWF0IjoxNjg4MTM0MzM1LCJlbnQiOlt7ImVwaWQiOiJTdWJzY3JpcHRpb25fQnJvd3Nlcl9TdHJlYW1pbmciLCJiaWQiOiIxMDAwMDAxNTIzIn0seyJlcGlkIjoiU3Vic2NyaXB0aW9uX0Jyb3dzZXJfU3RyZWFtaW5nIiwiYmlkIjoiMTAwMDAwMTAzOCJ9LHsiZXBpZCI6IlN1YnNjcmlwdGlvbl9Ccm93c2VyX1N0cmVhbWluZyIsImJpZCI6IjEwMDAwMDAwMzMifSx7ImVwaWQiOiJTdWJzY3JpcHRpb25fQnJvd3Nlcl9TdHJlYW1pbmciLCJiaWQiOiIxMDAwMDAwMDAyIn0seyJlcGlkIjoiU3Vic2NyaXB0aW9uX0Jyb3dzZXJfU3RyZWFtaW5nIiwiYmlkIjoiMTAwMDAwMTAzNSJ9LHsiZXBpZCI6IlN1YnNjcmlwdGlvbl9Ccm93c2VyX1N0cmVhbWluZyIsImJpZCI6IjEwMDAwMDAwMDEifV0sImNzbW8iOnsibWFzIjoiNiIsImR0IjoidHBtYSIsIm1hc2QiOiIyIn0sImlzcyI6InRwbWFfd2ViIn0.TwJOBSKInc6Aj3my_37lBK_> Failed with code 401:

2023-06-30 19:43:03.254 T:8914    error <general>: AddOnLog: inputstream.adaptive: License server returned failure
2023-06-30 19:43:03.255 T:8914    debug <general>: AddOnLog: inputstream.adaptive: Security level: 5
2023-06-30 19:43:03.256 T:8837    debug <general>: CurlFile::Open - <https://ltsk-cdn.s3.eu-west-1.amazonaws.com/jumpstart/Temp_Live/cdn/HLS/Channel/imageContent-47224-k1uh5c4g-v2/imageContent-47224-k1uh5c4g-m2.png>
2023-06-30 19:43:03.257 T:8914    debug <general>: AddOnLog: inputstream.adaptive: Key status (0):

Showing 'empty service certificate' and subsequent failure to get the license/key.

aicynide commented 1 year ago

hey I tried in Windows 11, fresh installation of Kodi. First time the playback was failed so I installed inputStream helper, there was no error but after i click video it wasn't opening. here's the log- https://nekobin.com/nopebiyuro

glennguy commented 1 year ago

Hard to say because debug logging was turned off for most of the log.

Looks like the last channel refresh was ~13 minutes before trying playback after installing inputstream helper.

glennguy commented 1 year ago

Try this instead.

Create a file somewhere easy to get to within Kodi, like in the profile folder (c:\users\yourusername\AppData\Roaming\Kodi\userdata)

Call this file test.strm

Put the following into it:

#KODIPROP:inputstream=inputstream.adaptive
#KODIPROP:inputstream.adaptive.manifest_type=mpd
#KODIPROP:inputstream.adaptive.license_type=com.widevine.alpha
#KODIPROP:inputstream.adaptive.license_key=https://tataplay.live.ott.irdeto.com/Widevine/getlicense?CrmId=tatasky&AccountId=tatasky&ContentId=400000064&ls_session=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImNvbnRyb2xfc2lnbmluZ19rZXlfcHJvZHVjdGlvbl8xNjYxMjc5NjMyMDEwIn0.eyJzdWIiOiIxMzI3NDU1ODY5IiwiaXNlIjp0cnVlLCJqdGkiOiJkNTZkMjlhMS0wZWYzLTQyZTEtYmQ4ZC04MTQ2OTg4NDM3NDUiLCJhaWQiOiJ0YXRhc2t5IiwiZXhwIjoxNjgzNzIyODcyLCJuYW1lIjoidW5kZWZpbmVkIiwiaWF0IjoxNjgzNjM2NDcyLCJlbnQiOlt7ImVwaWQiOiJTdWJzY3JpcHRpb25fQnJvd3Nlcl9TdHJlYW1pbmciLCJiaWQiOiIxMDAwMDAxNTIzIn0seyJlcGlkIjoiU3Vic2NyaXB0aW9uX0Jyb3dzZXJfU3RyZWFtaW5nIiwiYmlkIjoiMTAwMDAwMTAzOCJ9LHsiZXBpZCI6IlN1YnNjcmlwdGlvbl9Ccm93c2VyX1N0cmVhbWluZyIsImJpZCI6IjEwMDAwMDAwMzMifSx7ImVwaWQiOiJTdWJzY3JpcHRpb25fQnJvd3Nlcl9TdHJlYW1pbmciLCJiaWQiOiIxMDAwMDAwMDAyIn0seyJlcGlkIjoiU3Vic2NyaXB0aW9uX0Jyb3dzZXJfU3RyZWFtaW5nIiwiYmlkIjoiMTAwMDAwMTAzNSJ9LHsiZXBpZCI6IlN1YnNjcmlwdGlvbl9Ccm93c2VyX1N0cmVhbWluZyIsImJpZCI6IjEwMDAwMDAwMDEifV0sImNzbW8iOnsibWFzIjoiNiIsImR0IjoidHBtYSIsIm1hc2QiOiIyIn0sImlzcyI6InRwbWFfd2ViIn0.9VU3Bp5pgqYzfgGq9y1sfSA8zo07UN7jC-oQFg0-BUI
https://delta11tatasky.akamaized.net/out/i/2700571.mpd

However adjust the last 2 lines based on what you get from your playlist. Grab it fresh from the tataplay url that you are using, just test with the first channel.

In Kodi go to settings -> File Manager -> Profile Directory and then select the test.strm file.

aicynide commented 11 months ago

Its is playing perfectly fine so the issue is with Simple Iptv client kodi.log

glennguy commented 11 months ago

so the issue is with Simple Iptv client

I think this is definitely worth looking at. Looking at this log you posted and comparing to a previous Android log https://github.com/xbmc/inputstream.adaptive/issues/1248#issuecomment-1615555864, the only difference is the timestamps and the jti claim (this is not related to the content you're trying to watch), and the length of the signature (in green):

Working image

Not working image

Now I'm wondering if IPTV Simple is truncating the URL, causing a signature mismatch and then the 401 response. It seems very likely that truncation is happening somewhere. The license URL in the log you just posted is exactly 1024 characters long. I'll have a quick look in IPTV source and see what I can find.

glennguy commented 11 months ago

From the log, the 'non working' URL is parsed by IPTVSimple correctly:

2023-06-30 19:42:14.257 T:8837    debug <general>: AddOnLog: pvr.iptvsimple: pvr.iptvsimple - LoadPlayList - M3U line read: '#KODIPROP:inputstream.adaptive.license_key=https://tataplay.live.ott.irdeto.com/Widevine/getlicense?CrmId=tatasky&AccountId=tatasky&ContentId=400001053&ls_session=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImNvbnRyb2xfc2lnbmluZ19rZXlfcHJvZHVjdGlvbl8xNjYxMjc5NjMyMDEwIn0.eyJzdWIiOiIxMzI3NDU1ODY5IiwiaXNlIjp0cnVlLCJqdGkiOiIwNTA3NTc1MS0yY2ZkLTQ1ZTYtOWIwZC1jMmY4MDlhMzk1NzUiLCJhaWQiOiJ0YXRhc2t5IiwiZXhwIjoxNjg4MjIwNzM1LCJuYW1lIjoidW5kZWZpbmVkIiwiaWF0IjoxNjg4MTM0MzM1LCJlbnQiOlt7ImVwaWQiOiJTdWJzY3JpcHRpb25fQnJvd3Nlcl9TdHJlYW1pbmciLCJiaWQiOiIxMDAwMDAxNTIzIn0seyJlcGlkIjoiU3Vic2NyaXB0aW9uX0Jyb3dzZXJfU3RyZWFtaW5nIiwiYmlkIjoiMTAwMDAwMTAzOCJ9LHsiZXBpZCI6IlN1YnNjcmlwdGlvbl9Ccm93c2VyX1N0cmVhbWluZyIsImJpZCI6IjEwMDAwMDAwMzMifSx7ImVwaWQiOiJTdWJzY3JpcHRpb25fQnJvd3Nlcl9TdHJlYW1pbmciLCJiaWQiOiIxMDAwMDAwMDAyIn0seyJlcGlkIjoiU3Vic2NyaXB0aW9uX0Jyb3dzZXJfU3RyZWFtaW5nIiwiYmlkIjoiMTAwMDAwMTAzNSJ9LHsiZXBpZCI6IlN1YnNjcmlwdGlvbl9Ccm93c2VyX1N0cmVhbWluZyIsImJpZCI6IjEwMDAwMDAwMDEifV0sImNzbW8iOnsibWFzIjoiNiIsImR0IjoidHBtYSIsIm1hc2QiOiIyIn0sImlzcyI6InRwbWFfd2ViIn0.TwJOBSKInc6Aj3my_37lBK_TLcg71qSwIBnAG2RbL-A'
2023-06-30 19:42:14.257 T:8837    debug <general>: AddOnLog: pvr.iptvsimple: pvr.iptvsimple - ParseSinglePropertyIntoChannel - Found #KODIPROP: property: 'inputstream.adaptive.license_key' value: 'https://tataplay.live.ott.irdeto.com/Widevine/getlicense?CrmId=tatasky&AccountId=tatasky&ContentId=400001053&ls_session=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCIsImtpZCI6ImNvbnRyb2xfc2lnbmluZ19rZXlfcHJvZHVjdGlvbl8xNjYxMjc5NjMyMDEwIn0.eyJzdWIiOiIxMzI3NDU1ODY5IiwiaXNlIjp0cnVlLCJqdGkiOiIwNTA3NTc1MS0yY2ZkLTQ1ZTYtOWIwZC1jMmY4MDlhMzk1NzUiLCJhaWQiOiJ0YXRhc2t5IiwiZXhwIjoxNjg4MjIwNzM1LCJuYW1lIjoidW5kZWZpbmVkIiwiaWF0IjoxNjg4MTM0MzM1LCJlbnQiOlt7ImVwaWQiOiJTdWJzY3JpcHRpb25fQnJvd3Nlcl9TdHJlYW1pbmciLCJiaWQiOiIxMDAwMDAxNTIzIn0seyJlcGlkIjoiU3Vic2NyaXB0aW9uX0Jyb3dzZXJfU3RyZWFtaW5nIiwiYmlkIjoiMTAwMDAwMTAzOCJ9LHsiZXBpZCI6IlN1YnNjcmlwdGlvbl9Ccm93c2VyX1N0cmVhbWluZyIsImJpZCI6IjEwMDAwMDAwMzMifSx7ImVwaWQiOiJTdWJzY3JpcHRpb25fQnJvd3Nlcl9TdHJlYW1pbmciLCJiaWQiOiIxMDAwMDAwMDAyIn0seyJlcGlkIjoiU3Vic2NyaXB0aW9uX0Jyb3dzZXJfU3RyZWFtaW5nIiwiYmlkIjoiMTAwMDAwMTAzNSJ9LHsiZXBpZCI6IlN1YnNjcmlwdGlvbl9Ccm93c2VyX1N0cmVhbWluZyIsImJpZCI6IjEwMDAwMDAwMDEifV0sImNzbW8iOnsibWFzIjoiNiIsImR0IjoidHBtYSIsIm1hc2QiOiIyIn0sImlzcyI6InRwbWFfd2ViIn0.TwJOBSKInc6Aj3my_37lBK_TLcg71qSwIBnAG2RbL-A' added: true

@phunkyfish would you have any idea on this one? I found this https://github.com/xbmc/xbmc/blob/80c3f85913d1a432518544d26ef66c204fad40d3/xbmc/addons/kodi-dev-kit/include/kodi/c-api/addon_base.h#L111 but it doesn't look like it's being used.

phunkyfish commented 11 months ago

If you look into pvr_defines.h you see’ll the definition for PVR_NAMED_VALUE and both the key and the value take a maximum of 1024 bytes. So anything beyond this will get truncated. This is bound to the PVR API and there is nothing we can do about it. It’s also why it works for .strm files as they don’t use the PVR API.

Using very long URLs is usually abstracted away by a video add-on, which will use an intermediate URL so it’s not too long.

glennguy commented 11 months ago

Ah ok, thankyou for the great explanation! My gut tells me that changing the API for this (eg increase to 2048 or 4096) would be the wrong thing to do. In the case of this property technically some URLs can exceed 32kb and what if another property wants some arbitrarily large value etc. There already exists a workaround with using an add-on to get the properties. Would you agree?

phunkyfish commented 11 months ago

Correct, a video add-on using a plugin:// URL is the correct solution here.

Personally I wish someone would write a generic video add-on for this purpose. It takes a M3U file, and output another one with URLs of a sane length. Then there would be a solution for anyone to use easily.

glennguy commented 11 months ago

@aicynide I had a quick look into how to move forward with this. Only one real option (of course some variations could be made, but the concept is the same). Inputstream.adaptive doesn't support a plugin:// url for the license server (maybe is something that could be added as a feature, but I don't think it would be a priority) so we need to go the proxy server way.

Develop a video plugin that does this:

Now when a channel is selected in IPTV Simple this happens:

Hope this makes sense. I don't have the time to develop such a thing sorry.

glennguy commented 8 months ago

@nirvana-7777 this is a similar issue which we eventually figured out was PVR/1024 char limit.

Similar to the above suggestion, the idea is to keep a small simple database for the license key and associate to some identifier e.g ABCDE, then set license key to http://yourproxy/ABCDE which reads DB and forwards the request to the correct server with right headers etc... just off the top of my head.

glennguy commented 8 months ago

Of course this it to get you by if/until a permanent fix is made Kodi side.