Python = 3.6.6
Pycryptodome = 3.6.4
Known Issue:
Old Python 3.5 files from a previous installation, won't be removed.
(because of the limitations of pynsist)
* plugins.openrectv: update to match site changes and title support
openrec.tv now requires users to login to access the streams, this PR
adds support for logins. Support for `--title` has also been added.
* plugins.openrectv: no need to login for publicly available streams
They now use https but it is invalid for requests,
so we need to use it but ignore it.
There region block message is now played as the video,
but it can't be detected if it is blocked from there API call.
If you don't want the region block message video,
this command closes Streamlink faster --hls-segment-ignore-names
"/0.k,/1.k"
Added some trace logs
* plugins.youtube: Added support for {author} and {title}
`streamlink --title "{author} - {title}" URL best`
---
Use `PluginError` instead of `log.error` with `return` for video_id
---
removed not used import and schema
* plugins.youtube: use `self.video_id` for `video_id` in `_get_streams`
did not change it in `_get_stream_info`
it is still video_id there not self
For the hls URL, use the API call that is used for `https://sketch.pixiv.net/lives`
instead of searching it on the User html source code,
as this might have some caching issues.
---
Save the session cookies after a successfully login,
they can be reseted with `--pixiv-purge-credentials`
---
New command to select the co-hosts `--pixiv-performer`,
rather than adding them as an alternative Stream.
The `unique_name` must be used for this command,
if an invalid user is selected Streamlink will ask the User to select a different User.
---
Normal stream
```
$ streamlink URL worst
[cli][info] Found matching plugin pixiv for URL ...
[cli][info] Available streams: 720p (worst), 1080p (best)
[cli][info] Opening stream: 720p (hls)
```
Stream with other co-hosts
```
$ streamlink URL worst
[cli][info] Found matching plugin pixiv for URL ...
[plugin.pixiv][info] Available hosts: unique_name_1 (display_name_1), unique_name_2 (display_name_2)
[cli][info] Available streams: 720p (worst), 1080p (best)
[cli][info] Opening stream: 720p (hls)
```
Stream with other co-hosts and --pixiv-performer command
```
$ streamlink URL worst --pixiv-performer unique_name_1
[cli][info] Found matching plugin pixiv for URL ...
[plugin.pixiv][info] Available hosts: unique_name_1 (display_name_1), unique_name_2 (display_name_2)
[cli][info] Available streams: 720p (worst), 1080p (best)
[cli][info] Opening stream: 720p (hls)
```
Stream with other co-hosts and invalid --pixiv-performer command
```
$ streamlink URL worst --pixiv-performer invalid_unique_name_2
[cli][info] Found matching plugin pixiv for URL ...
[plugin.pixiv][info] Available hosts: unique_name_1 (display_name_1), unique_name_2 (display_name_2)
[plugin.pixiv][info] 0 - owner_unique_name (owner_display_name)
[plugin.pixiv][info] 1 - unique_name_1 (display_name_1)
[plugin.pixiv][info] 2 - unique_name_2 (display_name_2)
Enter the number you'd like to watch: 2
[cli][info] Available streams: 720p (worst), 1080p (best)
[cli][info] Opening stream: 720p (hls)
```
I don't think anyone is using this plugin
at least the VOD part is broken for two years
`display_mime_type` was droped 2 years ago and would always raise a
KeyError in Streamlink
Example when it changed in 2016 for the Kodi Addon
https://github.com/cccc/plugin.video.media-ccc-de/pull/7/files32e27e68142122ebf401/src/streamlink/plugins/media_ccc_de.py (L85)
The livestreams might work, but they are not available right now.
---
The `self.session.http` part would need an update,
but since I don't know if someone is using this plugin it is not worth
it.
---
If someone is still using the livestream part,
leave a comment here and I would fix it.
* stream.dash: prefer audio streams based on the user's locale
* stream.dash: update tests
* stream.dash: refactor to handle different types of language code
* stream.dash: fix bug with empty language list
It will show this message when Localization is called by muxed hls or
dash streams.
```
$ streamlink ... --locale ru_RU
...
[plugin.dash][debug] Parsing MPD URL: ...
[utils.l10n][debug] Language code: ru_RU
```
or your local system code
```
$ streamlink ...
...
[plugin.dash][debug] Parsing MPD URL: ...
[utils.l10n][debug] Language code: xx_XX
```
* Largely untested, introduces custom title attributes pulled from site APIs
Included is support for {title}, {category}/{game}, and {author}
for Twitch and Youtube
Only tested (briefly) for Python 3 + Linux.
Committing to test on other platforms (Windows)
* bug-fix 1
* bug-fix 2
changing to list2cmdline turns out to not be necessary, since subprocess.call has already disabled the ability to break out by using `shell=False`
also broke launching on windows.
* bug-fix 3
move this to the pi3 area
* allow user to escape $ with \$
in case the user wants to use format codes.
comes at the expense of allowing streamers to insert format codes
that only appear for streamlink users, but is not a security risk
* plugins.zattoo: session update and allow muxed hls / dash streams
use new streamlink cookie api
the default session time is set to 30 days,
after every two hours there will be a check if the session is actually valid.
there is also a forced session reset if the streamlink cache data is invalid
---
use new streamlink logging api
---
New option `--zattoo-stream-types`, this allows the usage of other stream types
- hls - normal hls streams - this is the default which will be used as default
- hls5 - muxed hls streams
- dash - dash streams
they are not enabled by default, as this would spam to many not needed mirrors.
Support for other Zattoo based websites.
- https://iptv.glattvision.ch
- https://mobiltv.quickline.com
- https://player.waly.tv
- https://tvplus.m-net.de
- https://www.bbv-tv.net
- https://www.meinewelt.cc
- https://www.myvisiontv.ch
- https://www.netplus.tv
- https://www.quantum-tv.com
- https://www.saktv.ch
- https://www.vtxtv.ch
* plugins.zattoo: raise PluginError for invalid logins
* plugins.zattoo: rebase master, use utils.args for comma_list_filter
* tests.plugins: Added URL tests for every plugin
- broken plugins might have only negative tests
- some URLs are only derived from the _url_re
* tests.plugins: New test if a plugin has a test file
- errors when there is no test file for a plugin
(New Plugin without Tests)
- errors when there is a test file but no plugin
(Removed old Plugin, but not the tests)
* tests.plugins: Moved 'docs/tests plugins' into 'plugins_meta'
* plugins.youtube: update video ID extraction
* plugins.youtube: decode the error reason text correctly
* logging: handle unicode log message correctly
* tests for unicode logging
* plugins.youtube: redirect to canonical if no video ID found
* plugins.youtube: alternative videoID source for channels
* plugins.youtube: use the videoId from the URL if available
* plugins.youtube: fix encoding issue for Python 2/3
* plugins.youtube: log instead of self.logger
* plugins.youtube: revert canonical url lookup