Closed pintassilgo closed 4 days ago
These are great suggestions, and I'll look into adding them. Here’s my understanding:
When the playlist is loaded, if headers for VLC, TiviMate, Kodi, or other formats are already included within the playlist, use those for proxying the stream. If no headers are present, let the stream pass through without any headers, unless specific headers are set in the text fields. In that case, those headers would be used. Does that sound right? If so, I like this approach.
Yes, agreed. Thanks.
When a channel has no custom header, proxy shouldn't be used, to avoid wasting Vercel API requests.
When a channel has no custom header, proxy shouldn't be used, to avoid wasting Vercel API requests.
Yes, that's how I was thinking it would be.
Hi, has this been implemented yet?
I just deployed to try, More Info
shows the suggested formats as supported (currently I use http://example.com/playlist.m3u8|Referer=http://example.com
), but video still fails to play.
I see that URL of streams with referrer are changed to this format:
http://---.vercel.app?url=https%3A%2F%2Fexample.com%2Fplaylist.m3u8&data=b64encodedReferer=encodedurl
From what I see from logs, the HLS master playlist for the stream loads (similar to the URL above), but the segments with actual media fails.
OK, I tested a daddylive
stream with stream-specific headers in the same format as above and it worked, so it's implemented. Then I guess other servers are rejecting the proxy for some reason, I don't know why. I tried four different servers requiring Referer (they work on clients that support |Referer=
) and none of them work with the proxy. But the xyzdddd.mizhls.ru
from daddylive
works, this one server is probably more permissible than the others. Any idea on how to fix this? If I can contact you I can send broken URL examples, it's not personal.
Btw, you suggest that daddylive
requires specific User-Agent
, but I don't set them custom and they still work for me, be it in browser, in mpv, in TV app... For me, only Referer
and Origin
are required for daddylive
.
One more thing... Isn't there missing a /
after host? From what I know it should be http://---.vercel.app/?url=https...
.
Send me a message on Discord and I'll take a look at the sites.
OK, thanks, I not experienced with Discord, I tried to send the message to you, was warned that it wasn't delivered because you only accept from friends, so I sent a friend request.
After today's update, it's now working properly, thank you.
Just in case: by using your "Deploy" button, the cloned repo isn't created as a fork, so GitHub doesn't provide the "Sync fork" button to update. So I deleted my previous cloned repo and clicked "Fork" in your repo for a proper update-able fork.
Then I went to Deployments
tab in Vercel, clicked the ...
button then Create Deployment
.
I suggest adding a word about that (how to update existing Vercel project to latest commit) in your readme.
Thanks again.
So I deleted my previous cloned repo and clicked "Fork" in your repo for a proper update-able fork.
The thing is that by creating a 'official' fork it can't be private, and when you deploy it the public Vercel URL is visible to anyone in "About" details of the repository. I had to manually delete it so I don't risk people using my Vercel quota.
I don't know if adding the public Vercel URL in repo details is a Vercel thing that need to be manually removed after deploying or if it's something added by your code. If there's a way to prevent Vercel from automatically adding the URL to the repository, I guess that should be done.
This tool presumes all playlist streams requires the same header. It would be good if it can handle different headers (including no header at all) for each entry in playlist.
From what I see, there are two popular formats used by M3U playlists to pass headers:
|name=value
immediately after the URL of the stream, in the same line. For multiple headers for the same URL, join them with&
(just like URL parameters).#EXTINF
and the URL, containing#EXTVLCOPT:http-referrer="value"
(orhttp-user-agent
orhttp-origin
instead ofhttp-referrer
). One header per line. Wrapping value in double quotation marks is optional, players seem to support with or without.Examples:
1.
2.