Commit Graph

15 Commits

Author SHA1 Message Date
bastimeyer 334e18e412 tools: add mypy config
- Add mypy and available typing stubs to dev-requirements
- Add mypy config
- Add py.typed to streamlink + streamlink_cli packages (PEP 561):
  This is required, so that mypy can import types from streamlink when
  installed in editable mode. Don't publish this file for now.
  Once various streamlink APIs are properly typed, typing stub files
  can be added instead.
2022-05-24 14:07:47 -07:00
bastimeyer 9dca2cef42 chore: move coverage config to pyproject.toml 2022-04-22 10:45:08 -07:00
bastimeyer 9b0815dbee build: add pyproject.toml, switch to versioningit
- Add basic pyproject.toml with build-system information
- Drop versioneer in favor of versioningit
- Delete versioneer install module and remove its setup.cfg config
- Replace `src/streamlink/_version.py` and load streamlink's version
  string via versioningit. The module's `__version__` export will get
  replaced by a static string on build-time when creating sdists/wheels,
  which results in the old versioneer behavior with support for
  editable installs.
- Make versioningit use the same version format as versioneer
- Update MANIFEST.in and .coveragerc
2022-04-10 07:55:31 +02:00
bastimeyer 5b01621fd1 setup: show error on older python versions
Show an error message when the python_requires classifier of the
package gets ignored, so that users can't accidentally install
an incompatible version of Streamlink with their unsupported
Python version / environment.

Also bump the required version of pip to >=9 in dev-requirements.
2021-10-09 11:23:50 -07:00
bastimeyer 1549c41752 build: include bash and zsh completions in wheels 2021-09-26 10:22:40 +02:00
bastimeyer d04767fa5b tests: remove mock from dev dependencies 2021-07-12 21:37:07 -07:00
bastimeyer b015edb214 flake8: add import-order linting config 2020-10-27 17:17:49 +01:00
beardypig 47dffe90b6 tests: fix log tests when run on a system with a non-UTC timezone
`freezegun` needs to be at least 1.0.0 for `tz_offset` to work
correctly.
2020-10-22 17:45:07 +02:00
bastimeyer 5f137e20ca ci.github: fix codecov uploads
- switch to codecov action to enable tokenless uploads
- force coverage report output format
- remove codecov from dev-requirements
2020-04-04 00:49:14 -07:00
bastimeyer 741083ee76 flake8: add flake8 to TravisCI 2020-02-23 10:06:17 +01:00
Sebastian Meyer e96c725cb5 Build additional "streamlinkw" launcher on Windows (#2326)
* Build additional "streamlinkw" launcher on Windows

1/2: Windows installer (using a pre-release version of pynsist)

* Build additional "streamlinkw" launcher on Windows

2/2: Windows specific wheels
2019-03-06 17:34:16 -08:00
back-to cd6f94a5a4
Removed old Livestreamer deprecations and API references
- removed versionchange references as Streamlink does not use it.
- removed old code that was deprecated in Livestreamer
- removed DeprecatedWarning for 2.6 as it is already mentioned in 
`setup.py`
  
a14f170a04/setup.py (L82)
- removed unittest2
- Flake8 for some lines/files that I changed.
2018-08-04 16:31:09 +02:00
beardypig c1489782cf MPEG DASH Support (initial) (#1637)
* stream.dash: parser for dash manifest files

* stream.dash: stream player for dash with plugin to support dash:// prefixed urls

* cli.main: make sure that streams are closed on errors

* stream.dash: fix some parsing bugs

* stream.dash: tidy up the segment number generation

* plugins.dash: wip segment timeline

* stream.dash: update to segment timeline parsing

* stream.dash: py3 support

* stream.dash: raise an error for DRM protected streams

* stream.dash: fixes for timescaling and some segment templates

* docs: add DASHStream to docs with other Stream classes

* dash: fix for video only stream

* plugins.dash: fix bug where all URLs were matched

* stream.dash: fix issue with manifest reload

* plugin.dash: add tests and fix a couple of bugs found in testing

* stream.dash: add some tests to cover the DASHStream classes

* WIP: audio only streams

* add some debugging for threads and remove the thread joins

* dash: startNumber should default to 1

* dash: follow redirects to get the base url

* dash: fix bool parser, and segment template parser

* dash: fixed some issues...

...with some segment templates, as well as improving the presentation
delay handling

* dash: add a back-off for checking for manifest changes

* dash: fix broken tests

* dash: incomplete support for Segment@r

* dash: fixed audio/video sync issue

Added a `copyts` option to the FFMPEG muxer class so that the timestamps
given in the source files are maintained, this appears to fix the a/v
sync issues.

NB. The timestamp can get weird, but that's how it is :)

* dash: support for Time _and_ Number in segment timeline

* tests: add some dash parser tests + a little refactor

* tests: add dash to built in plugins

* tests: more coverage of dash_parser

Added a new module for tests, `freezegun`, for mocking time.

* dash: fix for missing publishTime

* dash: update available_at times to be datetime

This should fix any timezone or leap-second issues, etc.

* fixed timing issue for 1tv.ru

* dash: fix availability timeline for segment timeline

* dash: flake8 tweaks

* dash: add a few debug logging messages
2018-05-30 12:30:38 -07:00
Alexis Murzeau 943539797a Implement PKCS#7 padding decoding with AES-128 HLS
According to the the HLS RFC [0], AES-128 streams use PKCS#7 padding.
This commit implement PKCS#7 padding decoding.

Although streamlink wasn't implementing this padding, MPEG TS streams
are working because they use a synchronization byte so the non-removed
padding was ignored by video players.

This require to have the full segment buffer instead of iterating the
result in chunks, but requests was still downloading the full segment in
memory as stream=True is not set. See [1].

[0] https://tools.ietf.org/html/rfc8216#section-4.3.2.4
[1] http://docs.python-requests.org/en/master/api/#requests.Response.iter_content
2018-01-10 02:34:35 +01:00
Beardypig f29b08c58c Windows command line parsing fix (#300)
* Enable automated testing on Windows via AppVeyor

* tests: add some tests for the command line argument parsing

* cli: fixed windows argument parsing with escaped quotes, etc.

* tests: python2.6 requires unittest2

* tests: fixed awful typo!
2016-12-15 11:47:22 -08:00