-
Notifications
You must be signed in to change notification settings - Fork 371
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
add option for change "user_agent" #225
Comments
I don't understand how it works offhand, but you can add a useragent after the URL by doing something like this:
It breaks compatibility with VLC. It would be nice to have a proper user agent tag added. |
Adding support for the #EXTVLCOPT directive from VLC (e.g. |
A quick look through Kodi's API shows no obvious way of passing information to change the user agent string beyond the URL hack that I mentioned. pvr.iptvsimple is also completely unaware of this as it passes the URL as is: pvr.iptvsimple/src/PVRIptvData.cpp Line 497 in 6e44490
It seems that more than one operation is supported through this hack too: There are also other VLC options that use #EXTVLCOPT. I don't see a comprehensive list, but the relevant ones can be seen on the lines that have https://github.com/videolan/vlc/blob/master/modules/access/http.c The only two that are in common between the subset above and the ones xmbc supports from curl are referer and user agent. It would not be hard for someone to modify the code to implement support for these by doing some manipulation on the URL, although passing it through the URL feels wrong to me. |
Take a look here: #177 There reason for that is here: link So in order for HTTP headers you pass on by that construct "http://blabla.com/njah.m3u8|User-Agent=Mozilla" to be used not only by cURL request but also subsequent ffmpeg requests you will have to modify that if conditional and add OR condition to whatever "stream type" gets set by PVR addon , and compile that Kodi fork. Here is the enum with available types: link I can confirm that after doing that code change user-agent override will work in combination with pvr.iptvsimple addon, but can't really help you with what exactly would be correct stream type (maybe "DVDSTREAM_TYPE_HTTP" ???) because I'm using a fork of Kodi with changes added by CoreELEC team that were required in order to support seeking and watching "cutv" / "archive" / "server-backed X days timeshift" and among those changes that linked "DVDStreamType" enum now has a new member "DVDSTREAM_TYPE_PVR_ARCHIVE" that is used to indicate / to "mark" streams that support "archive seeking" functionality. So I used that stream type. This is something that used to work on Kodi v16 out of the box and stopped working on v17 and now v18. |
@shamanNS I do not see any changes made by CoreELEC to the code that you linked. At the time that I write this, the two functions are exactly the same: https://github.com/CoreELEC/xbmc/blob/coreelec-9.0/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxFFmpeg.cpp#L241 If you have a patch for this, why don't you submit it to the kodi project? At the very least, you could open an issue with kodi: https://github.com/xbmc/xbmc/issues At the moment, they have no open issues concerning what you described. |
@ryao You can't see any changes because CoreELEC codebase doesn't include that particular change (also as far as I've noticed all those "support for archive" changes are added as patch files into CoreELEC repo). What I did on my own is this:
The problem is fixed for my use-case. And like I stated I have no idea what would value of that ENUM I've previously mentioned (since you can't just use "DVDSTREAM_TYPE_PVR_ARCHIVE" on official Kodi repo code). So to make things somewhat clearer: you (probably) don't need all those changes that were added to Kodi's codebase used by CoreELEC project but you will "just" have to figure out what type of stream is assigned when using unmodified Kodi + unmodified pvr.iptvsimple codebase. Feel free to create an issues yourself. I'm not even sure is it is a bug or it functions with those imposed limitation "by design". I'm actually not a programmer / developer and thus I have next to zero knowledge of the whole "Github workflow", in regards to creating and submitting Pull requests "upstream" ( I don't even know how to create "patch" file similar to those used by CoreELEC team). |
found how to make useragent work:
work on libreelec Kodi v18.1, raspberry pi |
You are correct. This is the right way to pass user agent to kodi:
|
For other custom user http headers this PR provides a method to send them in kodi 19: xbmc/xbmc#16847 |
And as of this PR #305 headers that were not being passed to ffmpeg should also be covered including support for supplying user-agent and referrer using EXTVLCOPT. |
Hi, using the headers passing option found an easy solution for the problem. Simply added on the fly the User-Agent during the streams parsing. From the addon settings you can choose the User-Agent you like. I can do pull request eventually, even if i didn't update all the strings for the new UI feature... |
This is a weird one. While we want to allow the flexibility to deal with all situations at the same time overriding Kodi’s own user agent should be an advanced action that is rarely required. Kodi should represent itself as Kodi. In time all provider’s should accept Kodi’s user agent. So I’m not sure it should be added as an addon setting. Because when it’s no longer needed we then need to remove it and we really shouldn’t need it in the first place. |
In reality the User-Agent change it's only for the streams included in the playlist, so Kodi keeps it's own identity. If was permanent, one time would be enough. Outside of the parsing loop. |
Hi, the magic words are "should accept", but the reality is that some providers, because of some malicious 3rd parts add-ons, they block kodi requests. |
It's an option however, one should even don't use it. Then the addon takes the streams as written by the playlist. |
No description provided.
The text was updated successfully, but these errors were encountered: