1
mirror of https://github.com/streamlink/streamlink synced 2024-11-01 01:19:33 +01:00
Commit Graph

2890 Commits

Author SHA1 Message Date
back-to
b84dc88261
script.makeinstaller: use a more recent version of Python and Pycryptodome
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)
2018-07-31 19:15:34 +02:00
beardypig
43859cc3b9 plugins.openrectv: update to match site changes and title support (#1968)
* 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
2018-07-30 11:03:47 -07:00
Sebastian Meyer
5d1f4521e0 Reword+reformat issue templates for consistency (#1966)
* Reword+reformat issue templates for consistency

* Change issue templates according to suggestions
2018-07-28 22:48:07 -07:00
Forrest
e8541ae447
Merge pull request #1964 from back-to/sorted
docs-CLI: Fix for sort and prog issue
2018-07-28 00:24:35 -07:00
Forrest
41b5f168aa
Merge pull request #1965 from back-to/ceskatelevize
plugins.ceskatelevize: Fix for https issues
2018-07-27 13:32:55 -07:00
back-to
10758774a0
plugins.ceskatelevize: Fix for https issues
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
2018-07-27 11:18:46 +02:00
back-to
66409146e3
docs-CLI: Fix for sort and prog issue
Fix unsorted plugin commands on python <= 3.5
afa12b6d1e
also for streamlink -h

Fix `%(prog)s`
https://streamlink.github.io/latest/cli.html#player-options

Fix block at the end
https://streamlink.github.io/latest/cli.html#cmdoption-t
2018-07-26 21:33:59 +02:00
jackyzy823
ed06877559 Plugin Request: new plugin for Abema.tv (#1949)
* plugin.abematv: implement plugin for Abema.tv

* plugin.abematv: fail fast if video requiring a login and check json schema
2018-07-25 11:06:53 -07:00
Forrest
76e65e5792
Merge pull request #1962 from back-to/pixiv
plugins.pixiv: use API for the stream URL and cache login cookies
2018-07-25 11:06:22 -07:00
back-to
d12d30eb60 plugins.youtube: Added support for {author} and {title} (#1944)
* 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
2018-07-25 11:04:51 -07:00
back-to
e926fc9520
plugins.pixiv: use API for the stream URL and cache login cookies
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)
```
2018-07-25 15:37:02 +02:00
Forrest
68bc936e61
Merge pull request #1952 from back-to/media_ccc_de
plugins.media_ccc_de: removed plugin
2018-07-22 11:43:13 -07:00
Forrest
9834574648
Merge pull request #1953 from back-to/younow
plugins.younow: Fix for session error and plugin cleanup
2018-07-22 11:42:43 -07:00
back-to
3a0c2f6891
plugins.media_ccc_de: removed plugin
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/files
32e27e6814

2122ebf401/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.
2018-07-22 14:52:36 +02:00
back-to
e2e4a82dc0
plugins.younow: Fix for session error and plugin cleanup 2018-07-22 13:53:14 +02:00
Billy2011
2122ebf401 stream.hls_playlist: fix some regex pattern & code optimization (#1918)
* replace enumerate by iter

Line numbers are no longer required.

* replace regex to precompiled one

it's better because it's high frequently used
2018-07-22 11:32:30 +00:00
Forrest
a312334682
Merge pull request #1950 from back-to/en_CA
tests.localization: use en_CA instead of en_US for test_equivalent
2018-07-21 12:35:02 -07:00
back-to
c6f3994e17
tests.localization: use en_CA instead of en_US for test_equivalent
**python-iso3166** got an update which breaks the Streamlink tests.
https://pypi.org/project/iso3166/#history

**python-iso3166** and **pycountry** have now a different `name` for _the United States of America_

> python-iso3166: United States of America
e5f8b37f18

> pycountry: United States
5aa4bb47e3/src/pycountry/databases/iso3166-1.json (iso3166-1.json-1572):1578

https://www.iso.org/obp/ui/#iso:code:3166:US

---

use **en_CA** instead of **en_US** for backwards compatibility,
as changing the **US** name would fail with older versions of **python-iso3166** / **pycountry**
2018-07-21 14:30:51 +02:00
Forrest
b3c7648aab
Merge pull request #1945 from back-to/rtve
plugins.rtve: Fixed AttributeError 'ZTNRClient' has no 'session'
2018-07-19 12:09:11 -07:00
Forrest
c75618bcbd
Merge pull request #1947 from back-to/filmon
plugins.filmon: Fixed AttributeError
2018-07-19 12:08:57 -07:00
Forrest
626e251554
Merge pull request #1948 from back-to/crunchyroll
plugins.crunchyroll: Fixed AttributeError and Flake8
2018-07-19 12:08:35 -07:00
Forrest
0dc7d2814f
Merge pull request #1946 from back-to/twitch
plugins.twitch: Fixed AttributeError and Flake8
2018-07-19 12:07:59 -07:00
back-to
85bc53fa87
plugins.crunchyroll: Fixed AttributeError and Flake8
`AttributeError: 'CrunchyrollAPI' object has no attribute 'session'`
2018-07-19 15:44:28 +02:00
back-to
cc29454770
plugins.filmon: Fixed AttributeError
`AttributeError: 'FilmOnAPI' object has no attribute 'session'`
2018-07-19 15:30:20 +02:00
back-to
1c3f7e009a
plugins.twitch: Fixed AttributeError and Flake8
`AttributeError: 'TwitchAPI' object has no attribute 'session'`
`AttributeError: 'UsherService' object has no attribute 'session'`
2018-07-19 15:18:24 +02:00
skulblakka
6d22855cb2 [picarto.tv] Fix regarding changed URL (#1935)
* Fix regarding changed URL

* Use parse_json instead of string replace

* Updated regex

* Remove unnecessary escape in regex
2018-07-19 12:43:32 +00:00
back-to
a6b4d53c20
plugins.rtve: Fixed AttributeError 'ZTNRClient' has no 'session'
and Flake8 error
2018-07-19 14:25:37 +02:00
Forrest
33f677b6fe
Merge pull request #1941 from beardypig/hls-audio-muxing
stream.hls: if the primary video stream has audio then include it
2018-07-17 12:18:42 -07:00
Billy2011
fb6a00c86b streamlink.plugins: replace global http session by self.session.http (#1925)
* streamlink.plugins: replace global http session by self.session.http
2018-07-17 12:15:38 -07:00
beardypig
16b7043742
stream.hls: if the primary video stream has audio then include it 2018-07-17 11:36:27 +02:00
beardypig
cac78e43e0 stream.dash: prefer audio streams based on the user's locale (#1927)
* 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
2018-07-14 10:46:13 -07:00
Forrest
c2ca180092
Merge pull request #1929 from back-to/locale_debug
debug: Added Session Language code as a debug message
2018-07-13 16:17:57 -07:00
back-to
9bb99d045d tests: run Python 3.7 tests on AppVeyor and Travis-CI (#1928)
* tests: run Python 3.7 tests on AppVeyor and Travis-CI

Travis-ci

- `dist: xenial` for 3.7 because `openssl` is to old on `trusty`
https://github.com/travis-ci/travis-ci/issues/9069
https://github.com/travis-ci/travis-ci/issues/9815

AppVeyor

- https://github.com/appveyor/ci/issues/2475

* tests: Add Python 3.8 for travis-ci and allow_failures
2018-07-13 16:17:26 -07:00
Forrest
3e4c2f61a2
Merge pull request #1926 from beardypig/hls-mux-av-only
stream.hls: only include audio/video streams in MuxedHLSStreams
2018-07-13 16:15:26 -07:00
back-to
86214d93eb
debug: Added Session Language code as a debug message
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
```
2018-07-12 15:04:23 +02:00
beardypig
3225bfd375
stream.hls: only include audio/video streams in MuxedHLSStreams 2018-07-12 12:44:39 +02:00
Forrest
6bf654a291
Merge pull request #1919 from back-to/tv4play
plugins.tv4play: Fix for updated website
2018-07-11 11:54:16 -07:00
Hubcapp
5c3cf571ee Window Titles = Stream Titles + Other Attributes (#1576)
* 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
2018-07-11 11:52:17 -07:00
back-to
cc384d2160
plugins.tv4play: Fix for updated website 2018-07-10 15:07:51 +02:00
back-to
fbdea863d6 plugins.zattoo: session update and allow muxed hls / dash streams (#1902)
* 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
2018-07-06 18:37:39 -07:00
back-to
c394b414f6 tests.plugins: Test that each plugin has a test file (#1885)
* 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'
2018-07-05 18:47:25 -07:00
Forrest
dfccfce6b3
Merge pull request #1903 from back-to/utils_args
utils.args: Moved streamlink_cli utils.args into streamlink package
2018-07-05 12:33:09 -07:00
back-to
b98b821533
utils.args: Moved streamlink_cli utils.args into streamlink package
make it usable for plugin args

added tests
2018-07-05 18:13:30 +02:00
Forrest
4e2f64b2d7
Merge pull request #1897 from beardypig/dash-fix-1895
stream.dash: fix bug where timeline_segments.t can be None
2018-07-03 11:30:40 -07:00
beardypig
71a327ae4c
stream.dash: fix bug where timeline_segments.t can be None 2018-07-03 12:48:59 +02:00
beardypig
8d9f4f2b56 Update method for finding YouTube videoIds (#1888)
* 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
2018-07-02 14:53:01 -07:00
beardypig
0e48e2f01a Handle unicode log message in Python 2 (#1886)
* utils.encoding: add maybe_{de,en}code text endoing methods

Wrappers for better handling unicode in Python 2 vs. 3

* logging: handle unicode log message correctly

* tests for unicode logging

* tests for maybe_{de,en}code

* set encoding
2018-06-30 17:11:40 -07:00
Forrest
7e11c1fd9e
Merge pull request #1887 from beardypig/plugin-args-suppress
plugin args: if args are suppressed, ignore them
2018-06-30 17:10:28 -07:00
Forrest
8e8b355728
Merge pull request #1889 from beardypig/toya-plugin
Add tvtoya plugin
2018-06-30 17:09:18 -07:00
beardypig
40e2bb0a5b
plugin.tvtoya: refactor, add tests, plugin docs, etc. 2018-07-01 00:40:14 +02:00