-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Add ability to specify custom key URI override for HLS streams #2139
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
Conversation
Codecov Report
@@ Coverage Diff @@
## master #2139 +/- ##
==========================================
+ Coverage 51.31% 51.33% +0.01%
==========================================
Files 232 232
Lines 14184 14190 +6
==========================================
+ Hits 7279 7284 +5
- Misses 6905 6906 +1 |
|
Not sure if this feature should be added as there was no discussion at #1462, https://docs.python.org/3/library/urllib.parse.html#urllib.parse.urlparse |
|
I don't have any problem adding this, it could be useful for loading a local AES key file for example... |
|
This has been open and since no one has weighed in and it hasn't been updated I'm going to merge it for now. Can always improve it later. Closes #1462 |
…mlink#2139) * cli: add arguments (hopefully) for custom key uri feature * stream.hls: (hopefully) implement custom key uri feature * cli: fix argument * stream.hls: force hls segment key response encoding to 'binary/octet-stream' as per hls spec.
streamlink 1.3.1 (2020-01-27)
A small patch release that addresses the removal of MPV's legacy option syntax, also with fixes of several plugins, the addition of the --twitch-disable-reruns parameter and dropped support for Python 3.4.
streamlink 1.3.0 (2019-11-22)
A new release with plugin updates and fixes, including Twitch.tv (see #2680), which had to be delayed due to back and forth API changes.
The Twitch.tv workarounds mentioned in #2680 don't have to be applied anymore, but authenticating via --twitch-oauth-token has been disabled, regardless of the origin of the OAuth token (via --twitch-oauth-authenticate or the Twitch website). In order to not introduce breaking changes, both parameters have been kept in this release and the user name will still be logged when using an OAuth token, but receiving item drops or accessing restricted streams is not possible anymore.
Plugins for the following sites have also been added:
albavision
news.now.com
twitcasting.tv
viu.tv
vlive.tv
willax.tv
streamlink 1.2.0 (2019-08-18)
Here are the changes for this month's release
Multiple plugin fixes
Fixed single hyphen params at the beginning of --player-args (#2333)
--http-proxy will set the default value of --https-proxy to same as --http-proxy. (#2536)
DASH Streams will handle headers correctly (#2545)
the timestamp for FFMPEGMuxer streams will start with zero (#2559)
streamlink 1.1.1 (2019-04-02)
This is just a small patch release which fixes a build/deploy issue with the new special wheels for Windows on PyPI. (#2392)
streamlink 1.0.0 (2019-01-30)
The celebratory release of Streamlink 1.0.0!
A lot of hard work has gone into getting Streamlink to where it is. Not only is Streamlink used across multiple applications and platforms, but companies as well.
Streamlink started from the inaugural fork of Livestreamer on September 17th, 2016.
Since then, We've hit multiple milestones:
Over 886 PRs
Hit 3,000 commits in Streamlink
Obtaining our first sponsors as well as backers of the project
The creation of our own logo (streamlink/streamlink#1123)
Thanks to everyone who has contributed to Streamlink (and our backers)! Without you, we wouldn't be where we are today.
Without further ado, here are the changes in release 1.0.0:
We have a new icon / logo for Streamlink! (streamlink/streamlink#2165)
Updated dependencies (streamlink/streamlink#2230)
A ton of plugin updates. Have a look at this search query for all the recent updates.
You can now provide a custom key URI to override HLS streams (streamlink/streamlink#2139). For example: --hls-segment-key-uri <URI>
User agents for API communication have been updated (streamlink/streamlink#2194)
Special synonyms have been added to sort "best" and "worst" streams (streamlink/streamlink#2127). For example: streamlink --stream-sorting-excludes '>=480p' URL best,best-unfiltered
Process output will no longer show if tty is unavailable (streamlink/streamlink#2090)
We've removed BountySource in favour of our OpenCollective page. If you have any features you'd like to request, please open up an issue with the request and possibly consider backing us!
Improved terminal progress display for wide characters (streamlink/streamlink#2032)
Fixed a bug with dynamic playlists on playback (streamlink/streamlink#2096)
Fixed makeinstaller.sh (streamlink/streamlink#2098)
Old Livestreamer deprecations and API references were removed (streamlink/streamlink#1987)
Dependencies have been updated for Python (streamlink/streamlink#1975)
Newer and more common User-Agents are now used (streamlink/streamlink#1974)
DASH stream bitrates now round-up to the nearest 10, 100, 1000, etc. (streamlink/streamlink#1995)
Updated documentation on issue templates (streamlink/streamlink#1996)
URL have been added for better processing of HTML tags (streamlink/streamlink#1675)
Fixed sort and prog issue (streamlink/streamlink#1964)
Reformatted issue templates (streamlink/streamlink#1966)
Fixed crashing bug with player-continuous-http option (streamlink/streamlink#2234)
Make sure all dev dependencies (streamlink/streamlink#2235)
-r parameter has been replaced for --rtmp-rtmpdump (streamlink/streamlink#2152)
Breaking changes:
A large number of unmaintained or NSFW plugins have been removed. You can find the PR that implemented that change here: streamlink/streamlink#2003 . See our CONTRIBUTING.md documentation for plugin policy.
streamlink 1.3.1 (2020-01-27)
A small patch release that addresses the removal of MPV's legacy option syntax, also with fixes of several plugins, the addition of the --twitch-disable-reruns parameter and dropped support for Python 3.4.
streamlink 1.3.0 (2019-11-22)
A new release with plugin updates and fixes, including Twitch.tv (see #2680), which had to be delayed due to back and forth API changes.
The Twitch.tv workarounds mentioned in #2680 don't have to be applied anymore, but authenticating via --twitch-oauth-token has been disabled, regardless of the origin of the OAuth token (via --twitch-oauth-authenticate or the Twitch website). In order to not introduce breaking changes, both parameters have been kept in this release and the user name will still be logged when using an OAuth token, but receiving item drops or accessing restricted streams is not possible anymore.
Plugins for the following sites have also been added:
albavision
news.now.com
twitcasting.tv
viu.tv
vlive.tv
willax.tv
streamlink 1.2.0 (2019-08-18)
Here are the changes for this month's release
Multiple plugin fixes
Fixed single hyphen params at the beginning of --player-args (#2333)
--http-proxy will set the default value of --https-proxy to same as --http-proxy. (#2536)
DASH Streams will handle headers correctly (#2545)
the timestamp for FFMPEGMuxer streams will start with zero (#2559)
streamlink 1.1.1 (2019-04-02)
This is just a small patch release which fixes a build/deploy issue with the new special wheels for Windows on PyPI. (#2392)
streamlink 1.0.0 (2019-01-30)
The celebratory release of Streamlink 1.0.0!
A lot of hard work has gone into getting Streamlink to where it is. Not only is Streamlink used across multiple applications and platforms, but companies as well.
Streamlink started from the inaugural fork of Livestreamer on September 17th, 2016.
Since then, We've hit multiple milestones:
Over 886 PRs
Hit 3,000 commits in Streamlink
Obtaining our first sponsors as well as backers of the project
The creation of our own logo (streamlink/streamlink#1123)
Thanks to everyone who has contributed to Streamlink (and our backers)! Without you, we wouldn't be where we are today.
Without further ado, here are the changes in release 1.0.0:
We have a new icon / logo for Streamlink! (streamlink/streamlink#2165)
Updated dependencies (streamlink/streamlink#2230)
A ton of plugin updates. Have a look at this search query for all the recent updates.
You can now provide a custom key URI to override HLS streams (streamlink/streamlink#2139). For example: --hls-segment-key-uri <URI>
User agents for API communication have been updated (streamlink/streamlink#2194)
Special synonyms have been added to sort "best" and "worst" streams (streamlink/streamlink#2127). For example: streamlink --stream-sorting-excludes '>=480p' URL best,best-unfiltered
Process output will no longer show if tty is unavailable (streamlink/streamlink#2090)
We've removed BountySource in favour of our OpenCollective page. If you have any features you'd like to request, please open up an issue with the request and possibly consider backing us!
Improved terminal progress display for wide characters (streamlink/streamlink#2032)
Fixed a bug with dynamic playlists on playback (streamlink/streamlink#2096)
Fixed makeinstaller.sh (streamlink/streamlink#2098)
Old Livestreamer deprecations and API references were removed (streamlink/streamlink#1987)
Dependencies have been updated for Python (streamlink/streamlink#1975)
Newer and more common User-Agents are now used (streamlink/streamlink#1974)
DASH stream bitrates now round-up to the nearest 10, 100, 1000, etc. (streamlink/streamlink#1995)
Updated documentation on issue templates (streamlink/streamlink#1996)
URL have been added for better processing of HTML tags (streamlink/streamlink#1675)
Fixed sort and prog issue (streamlink/streamlink#1964)
Reformatted issue templates (streamlink/streamlink#1966)
Fixed crashing bug with player-continuous-http option (streamlink/streamlink#2234)
Make sure all dev dependencies (streamlink/streamlink#2235)
-r parameter has been replaced for --rtmp-rtmpdump (streamlink/streamlink#2152)
Breaking changes:
A large number of unmaintained or NSFW plugins have been removed. You can find the PR that implemented that change here: streamlink/streamlink#2003 . See our CONTRIBUTING.md documentation for plugin policy.
…mlink#2139) * cli: add arguments (hopefully) for custom key uri feature * stream.hls: (hopefully) implement custom key uri feature * cli: fix argument * stream.hls: force hls segment key response encoding to 'binary/octet-stream' as per hls spec.
…mlink#2139) * cli: add arguments (hopefully) for custom key uri feature * stream.hls: (hopefully) implement custom key uri feature * cli: fix argument * stream.hls: force hls segment key response encoding to 'binary/octet-stream' as per hls spec.
…mlink#2139) * cli: add arguments (hopefully) for custom key uri feature * stream.hls: (hopefully) implement custom key uri feature * cli: fix argument * stream.hls: force hls segment key response encoding to 'binary/octet-stream' as per hls spec.
This pull request adds the "--hls-segment-key-uri <URI>" CLI flag which allows you to override the URI used to retrieve HLS segment keys.
I also force requests to parse the key response body as
binary/octet-streamas per the HLS spec. Not having this was actually giving me issues.