-
Notifications
You must be signed in to change notification settings - Fork 8
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
LiveTV streaming issues outside NL #22
Comments
I have pushed a couple of changes to the logic that fetches the live stream urls that -i think- could solve the issues you are having. Can you please try again with the latest code and see if it solves the issues you are having? |
I just released 1.5.0 which brings several video stream improvements and adds support for closed captioning. |
@pradix : Did you manage to test the latest release? Are things working properly for you now? |
Can't look into it now I'm traveling. I'm back on Monday and will test it. Thank you!! |
Cool, thanks! Happy traveling :) |
I have tested, but didn't solve the problems. This is the link on the website of NPO that's working at the moment what i'm using with SmartDNS server: https://smoote1d.omroep.nl/urishieldv2/l2cm8da084a61c0058d8daa5000000.f5efc6d1721a0c10/live/npo/tvlive/npo2/npo2.isml/npo2.m3u8 In previous version 1.4 i still could even watch programs outside Netherlands, now you have blocked that option. I'm using smartDNS server Unlocator and Unotelly. If it's needfull i can share it in private message my account. Everyhing on the iPad works fine with the NPO app. |
That's not the news I was expecting, can you do some more debugging on your end? The tvOS app is actually using those URLs you are seeing :) If you use Chrome's network debugger getting the URL is actually a three-step process. For example: Go to an episodeFor example to this episode Inspect the requests and search for the one that returns the different video content types (the app is currently always using the adaptive one)Inspect the JSONP request to the adaptive playlistThat will lead to the final playlist that the video player will useNote that the app will currently perform a different call for step 2 getting rid of the jsonp and callback parameters which will immediately return the result from step 3. So right now, the app uses two requests to obtain the video playlist. Another thing to try...The App will now use stream types in order of preference. You can try to change the order like described here. Perhaps that will allow you to pinpoint the issue? |
Floortje was not geo blocked so already working. |
I disabled the geo restrictions on my side in your app...all the streams are working. The only thing that's not working is the live streams. In de debugging it give it's paused. I have played around with the quality, that don't make any difference. For the normal streams the adaptive is even playing! |
Aha, it was not clear from your previous post that the episodes with no-region validation were still playing as expected but that those that did have region limitation did not play. To re-enable the button (basically ignoring the region check) you can change this line as follows:
I would suspect that those episodes that are marked to have region limitation will still not play, even if you enable the button. It might be similar for those live feeds, perhaps they are regionally limited now as well. Regarding Unlocator, their FAQ states the following:
To me, that sounds very unlikely / too good to be true. Whenever you connect to a streaming video server, your IP is known or they have to route the video stream through their VPN (which they say they don't). |
I looked in your source code NPOManager+Streams.swift: This is the url that i got on chrome while i'm watching NPO1 Live: |
The geo check that determine whether or not the play button is enabled is using an open source project. What country does this url report back to you? |
I found the solution: it's the token that is wrong: if i change the token: pd91k0014qft7caaju725282v1 |
That's strange, as the token has a lifetime of 2 hours (7200 seconds, that app expires the token sooner in 1 hour). What happens if you set the token lifetime to 0 in this file? I am unable to open the URLs you posted:
It looks like the token is based on your IP address... Perhaps that is causing the issue? |
makes no difference. |
Hmm, it seems like my comment says https while the url says http... in general I should really get rid of the http and only use https whenever possible. Apple has been allowing it but they will most likely kill the non-secure transports altogether sooner than later. |
What can we do to fix this issue? i need to watch Studio Sport on Sunday ;-) |
Hahahahaha :D |
I'm not getting any error in the debugger, but only that it's paused, even when i try to play with the order of the video quality: |
i tried to add you on skype...that talk quicker |
I just pushed another change and I changed all URLs from http to https. The back-end did not use https and looking at the certificate they added https support in dec 2016. Probably to prepare for Apple closing down on http resources... |
…ransport (https - enabled by default) or not. Note that this does not impact any stream url that are retreived from the back-end, the Youtube resources or the version check (which only exist on https). #22
Finally we managed to solve the issue :D |
Thanks for all your support |
Finalized support in the 1.5.1 release |
Hi,
Before 1st of March everything was working great. Watching TV outside Netherlands (I'm based in Dubai). Since the changes made by you and or NPO on the backend it's not working anymore.
Streaming tv shows are still working great, but watching liveTV is not working.
If I look in the logs what i'm getting back i see the following:
2017-03-17 21:48:00:406 UitzendingGemist[4239:2601290] Could not play live stream (Optional(NPOKit.NPOError.networkError("Could not fetch live stream url (url: https://livestreams.omroep.nl/live/npo/tvlive/npo1/npo1.isml/npo1.m3u8?hash=6b2bf994a10ca639a843f939f66a8d9b&type=jsonp&protection=url) (3)")))
Feedback if you open the url is as follow: This is a protected url but hash incorrect or missing, uri: /index.php/live/npo/tvlive/npo1/npo1.isml/npo1.m3u8?hash=6b2bf994a10ca639a843f939f66a8d9b&type=jsonp&protection=url
If I use the website of NPO.nl everything is working, i'm using a SmartDNS services such as Unotelly
and or Unlocator and I have just tested and everything is working on the website.
This is the same URL if I watch NPO1 on their website:
https://smoote1a.omroep.nl/urishieldv2/l2cm22de7f5c460058cc22a7000000.88799773542a1c83/live/npo/tvlive/npo1/npo1.isml/npo1.m3u8
This is the NPO2 live stream through their website:
https://smoote1a.omroep.nl/urishieldv2/l2cm05c65ef2370058cc235a000000.7c77b08c225fad59/live/npo/tvlive/npo2/npo2.isml/npo2.m3u8
So I think it's something small to fix in the backend of your application. I have installed 1.4.1 version
The text was updated successfully, but these errors were encountered: