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

Propose: Availability approach #2732

Closed
Dum4G opened this issue May 7, 2021 · 3 comments
Closed

Propose: Availability approach #2732

Dum4G opened this issue May 7, 2021 · 3 comments

Comments

@Dum4G
Copy link
Collaborator

Dum4G commented May 7, 2021

The repository ... contains ... publicly available video stream URLs, which ... have been intentionally made publicly by the copyright holders. In my understanding that sort of guarantees me a playlist with content that will be available to me as long as official source or IPTV carrier is willing to stream it.

What's done to maintain this approach?

  • An automated script removes everything that returns 404 back (great, 410 Gone detection can be added into it)
  • Some channels are manually? flagged as geo-blocked and non24/7 which is fair and transparent enough to warn viewers

What's wrong then?

There are still plenty of channels that may never ever be available or tested again but still present as totally accessible.

Let's run another script and flag some more!

In theory, we can flag everything that returns as 403 Forbidden or an HTML file full of excuses and eliminate most of broken streams, but there will be caveats still:

  • How to determine if 403 occurs because of geo restriction, IP lockdown or the expired token?
  • What to do with sources that may show dummy messages because of expired token?

This makes me personally to point fingers at sources that have tokens (obviously) and private restreamers using static IP addresses

What else can we do?

I suggest three new approaches to keep maintaining the project:

  • Strict

Any stream that comes from a static IP address or contains any form of authentication token in it (login-password combo included) is prohibited to commit unless a proof is given that the source/token is indeed publicly available and supposed to be used for unlimited time by unlimited amount of people.

Pros:

No need to create another set of filtered playlists
Absolute cleanliness and order

Cons:
Not so many channels left and even less opportunities to watch something interesting

  • Lazy

Tag [Geo-Blocked] is being replaced for something like [Dubious]. Automated check marks every link that doesn't return m3u or mpd file, not just 404. Any stream that comes from a static IP address or contains any form of authentication token in it (login-password combo included) is also being flagged with it. A new set of filtered playlists will be offered and channel counters for them will be shown in a separate column.

Pros:

Viewers can decide if they're willing to take the risk
Makes automation process easier

Cons:
A bit more confusion raised and explanations needed to help viewers choose the right playlist for them.
A lot of dead sources will remain in the list

  • Community-driven

Tag [Geo-Blocked] is remaining and goes along with something like [Dubious]. Automated check marks every link that doesn't return m3u or mpd file and doesn't have any other tags. Same rule applies to any stream that comes from a static IP address or contains any form of authentication token in it (login-password combo included). A new set of filtered playlists will be offered and channel counters for them will be shown in a separate column. A special list of Dubious channels with proposed country tags in channel name will be generated for contributors to check sources.

Pros:

Viewers can decide if they're willing to take the risk
Viewers actually know why some channels may not work for them

Cons:
Complicates automation
Even more confusion raised and explanations needed to help viewers choose the right playlist for them
More job for maintainers

Discuss

@Dum4G Dum4G changed the title Discussion: Availability approach Propose: Availability approach May 7, 2021
@freearhey freearhey pinned this issue May 7, 2021
@kaceo
Copy link

kaceo commented May 14, 2021

Of couse the value of this repo is greatly increased if validation is included as part of the build, but that is a huge burner of execution time. For instance, to detect 404 or geo-blocking, it may be necessary to use a proxy-net of at least three of more locations, and run detection scripts through these proxies. Such an approach adds considerable amount of time to cycle through thousands of sources, and will bust the default Github action execution budget.

But if the validation is moved to a second execution engine without execution limits, it could be viable.

@Dum4G
Copy link
Collaborator Author

Dum4G commented May 14, 2021

At the given moment Github action already goes through all of the sources but only scraps 404 errors away. We can set up in a way to mark every source that haven't returned a stream file to be marked as dubious (geo-blocked and non24/7 ones included) and place them in separate files with a suffix. That will make it easier for contributors to check if the source is actually geoblocked, where exactly does it work or if it's dead. Indeed, it may take more time to generate more files, but Github actions usually compile projects a lot more complicated than this one

@BellezaEmporium
Copy link
Collaborator

Here's my point of view :

Another possible solution is, as you said, put the channel as "Dubious", and have a script test it once every 4 or 6 hours.
That'll permit us to see if it's not 24/7 or if link down. If link is down, it'll go from "Dubious" to "Possibly Down / Geolocked".

The bot could make a playlist that references all the channels that are possibly down, to make our job easier to handle.

If the bot finds out link works after being marked as "Dubious", he'll mark it as "Not 24-7".

@iptv-org iptv-org locked and limited conversation to collaborators May 29, 2021
@BellezaEmporium BellezaEmporium unpinned this issue May 29, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Development

No branches or pull requests

3 participants