GithubHelp home page GithubHelp logo

beardypig / streamlink-portable Goto Github PK

View Code? Open in Web Editor NEW
76.0 3.0 18.0 1.77 MB

A script to build a portable version of Streamlink for Windows

License: Apache License 2.0

Shell 89.68% Python 6.27% Batchfile 4.05%
streamlink portable hacktoberfest

streamlink-portable's Introduction

Streamlink Portable

A script to build a portable version of Streamlink for Windows.

The portable zip files are build from the master branch of streamlink/streamlink and comes bundled with Python 3. There is a 32 bit and a 64 bit version available for 32 bit Windows and 64 bit Windows (if in doubt use the 32 bit version). Multiple bundles with different versions of Python 3 are available, the latest version of Python bundled is currently 3.9. Older versions of Python 3 are provided to maintain compatibility with older versions of Windows. Going forward the bundled versions of Python will be all versions supported by Streamlink.

The portable zip of the most recent stable streamlink version can be found in the latest release.

The latest Nightly build is available too.

To install simply unzip the zip file.

A streamlink.bat is included in the zip file so that you can easily execute streamlink.

The config file is read from the same directory as the streamlink.bat and is created when you first execute streamlink.bat, however it will not overwrite any existing config file so it can be edited, and the changes not lost when updating.

Building the zip files under Linux/macOS

NB. sed must be gnu-sed

  • jq is required for the build.
  • Clone this repo and execute the scripts/makeportable.sh script.

Building the zip files under Windows

  1. Install WSL. These instructions were done using WSL2 Ubuntu 20.04 LTS with wsl --install -d Ubuntu-20.04

  2. Update and fetch pre-requisite dependencies:

sudo apt update
sudo apt upgrade
sudo apt install python3-pip zip unzip jq
  1. Setup a working dir on a Windows mount, such as mkdir /mnt/d/scratch and cd into it.

  2. Clone this repo and streamlink/streamlink into a subdir called streamlink (assigned by default from repo name):

git clone https://github.com/beardypig/streamlink-portable
cd streamlink-portable
git clone https://github.com/streamlink/streamlink
  1. Execute script directly as bash: sudo bash ./scripts/makeportable.sh

  2. Find result inside dist subfolder.

Changelog

2021-10-26

  • Updated the asset management method to be inline with streamlink.
  • Fix streamlinkrc -> config rename.
  • Call python3 command directly.
  • Add Windows build instructions.
  • Update to Python 3.9.7.
  • Including extra dependencies.

2021-01-03

  • Update to Python 3.7.9.
  • Update dependencies to match latest version of Streamlink.

2021-01-02

  • Remove deprecated --no-version-check from the launcher script.

2020-04-21

  • Updated makeportable.sh script to download the ffmpeg/rtmpdump assets from the new streamlink-asset repo.

2020-02-18

  • Release stable version 1.3.1.

2019-11-22

  • Release stable version 1.3.0.

2019-04-15

  • Release stable version 1.1.1 - a bit late.

2018-08-01

  • Re-release stable 0.14.2 as 0.14.2+1, with fixed --version.

2018-07-12

  • Release stable 0.14.2.

2018-06-06

  • Release stable 0.13.0.
  • Update Python to 3.6.5.

2018-06-04

  • Add isodate module.

2018-05-09

  • Release stable 0.12.1.

2018-03-01

  • Release stable 0.10.0.

2017-09-14

  • Release stable 0.8.1.
  • Resolved issue with missing websocket and PySocks modules.
  • Update to Python 3.5.4.

2017-07-05

  • Release stable 0.7.0.
  • Resolved issue with missing urllib3 module.

2017-05-11

  • Release stable 0.6.0.
  • Moved the nightly builds to Bintray.

2017-03-29

  • Release stable 0.5.0, lagged behind the official release.

2017-02-12

  • Release stable 0.3.2.

2017-02-03

  • Added build trigger script that is running every 5 minutes to trigger a travis build.
  • Added stable build based on tags.
  • Released stable 0.3.1.

2017-01-27

  • Fixed bug with ffmpeg/rtmpdump paths being set on the command line.
  • The batch script doesn't change directory any more
  • Added iso3166 and iso-639 packages

2017-01-11

  • Updated to include ffmpeg.

streamlink-portable's People

Contributors

beardypig avatar karlo2105 avatar rgabbo avatar thekeeperofpie avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

streamlink-portable's Issues

Config file not read from streamlink folder

I edited config.template file but when I execute a command in streamlink, the config is not read. If I add the arg --config config.template is read as expected. Does the file has to be renamed or something? I can't find anything in the readme. Thanks

Streamlink portable latest update : No module named 'urllib3'

After having updated streamlink portable latest, I get such error displayed :

streamlink
Traceback (most recent call last):
  File "C:\Users\Ddr\Downloads\streamlink\\streamlink-script.py", line 11, in <m
odule>
    from streamlink_cli.main import main
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink_cli\main.py", line
 3, in <module>
    import requests
  File "C:\Users\Ddr\Downloads\streamlink\packages\requests\__init__.py", line 4
3, in <module>
    import urllib3
ImportError: No module named 'urllib3'

What's the big deal ? ;))

'Thunderpick' is not recognized as an internal or external command, operable program or batch file.

Since you have done a wonderful job with portable tools for us, I would like to know if you could fix or would to know how ignore this, or its out of your hands.

The stream trying to watch has some embedded clickable icons on the stream when watching through browser from the company Thunderpick, when using the Streamlink Twitch GUI with your portable tools, this happens.

Included screenshot

https://i.imgur.com/CZeYzFt.png

Channel
https://twitch.tv/uccleague2

"Build nightly" workflows currently failing :-(

Hi 😄

A recent upstream change,
cli: rename config file on Windows to "config"
now causes build nightly workflow runs to fail,

https://github.com/beardypig/streamlink-portable/actions/runs/912990920

https://github.com/beardypig/streamlink-portable/actions/runs/916706541

because file streamlinkrc is no longer found:

7. Build win32 package

Run bash ./scripts/makeportable.sh
[makeportable.sh] Downloading Python 3.7.9 win32...
[makeportable.sh] Downloading Python dependencies...
[makeportable.sh] Building streamlink sdist
no previously-included directories found matching 'docs/_build'
warning: no files found matching 'docs/_build/man/*'
no previously-included directories found matching '*/__pycache__'
warning: no previously-included files matching '*.pyc' found anywhere in distribution
warning: no previously-included files matching '*~' found anywhere in distribution
warning: no previously-included files matching '*.bak' found anywhere in distribution
warning: no previously-included files matching '*.swp' found anywhere in distribution
warning: no previously-included files matching '*.pyo' found anywhere in distribution
[makeportable.sh] Unpacking python
[makeportable.sh] Unpacking Windows 10 Universal Runtime
[makeportable.sh] Unpacking wheels
cp: cannot stat '/home/runner/work/streamlink-portable/streamlink-portable/streamlink/win32/streamlinkrc': No such file or directory
Error: Process completed with exit code 1.

I suspect the same ill fate awaits Build new release workflows when they are actually executed... 😉 😞

As mentioned several times in the past, I exclusively use your own portable 32-bit packages here, last successful build was streamlink-2.1.2+29-git-20210605-ge39bc5e-py3.7.9-win32-portable-gb5092bb from ca. 3 days ago...

Can you please fix this latest breakage? I'd be overly grateful if you did...

Best regards 😄

tvr.by : UnicodeEncodeError

As you can see below with fast proxy I got 50 % of time long error messages on streamlink. Is it normal ?
To reproduce it you need to make several attempts.

streamlink -p "%homedrive%\Users\Ddr\Downloads\VLCPortable\App\vlc\vlc" --http-proxy 
"86.57.146.126:3128" "http://www.tvr.by/televidenie/belarus-2"
[cli][info] Found matching plugin tvrby for URL http://www.tvr.by/televidenie/belarus-2
Traceback (most recent call last):
  File "C:\Users\Ddr\Downloads\streamlink\packages\requests\packages\urllib3\con
nection.py", line 141, in _new_conn
    (self.host, self.port), self.timeout, **extra_kw)
  File "C:\Users\Ddr\Downloads\streamlink\packages\requests\packages\urllib3\uti
l\connection.py", line 83, in create_connection
    raise err
  File "C:\Users\Ddr\Downloads\streamlink\packages\requests\packages\urllib3\uti
l\connection.py", line 73, in create_connection
    sock.connect(sa)
ConnectionRefusedError: [WinError 10061] Aucune connexion n\u2019a pu être établ
ie car l\u2019ordinateur cible l\u2019a expressément refusée

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Ddr\Downloads\streamlink\packages\requests\packages\urllib3\con
nectionpool.py", line 600, in urlopen
    chunked=chunked)
  File "C:\Users\Ddr\Downloads\streamlink\packages\requests\packages\urllib3\con
nectionpool.py", line 356, in _make_request
    conn.request(method, url, **httplib_request_kw)
  File "http\client.py", line 1106, in request
  File "http\client.py", line 1151, in _send_request
  File "http\client.py", line 1102, in endheaders
  File "http\client.py", line 934, in _send_output
  File "http\client.py", line 877, in send
  File "C:\Users\Ddr\Downloads\streamlink\packages\requests\packages\urllib3\con
nection.py", line 166, in connect
    conn = self._new_conn()
  File "C:\Users\Ddr\Downloads\streamlink\packages\requests\packages\urllib3\con
nection.py", line 150, in _new_conn
    self, "Failed to establish a new connection: %s" % e)
requests.packages.urllib3.exceptions.NewConnectionError: <requests.packages.urll
ib3.connection.HTTPConnection object at 0x02C8CE30>: Failed to establish a new c
onnection: [WinError 10061] Aucune connexion n\u2019a pu être établie car l\u201
9ordinateur cible l\u2019a expressément refusée

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Ddr\Downloads\streamlink\packages\requests\adapters.py", line 4
23, in send
    timeout=timeout
  File "C:\Users\Ddr\Downloads\streamlink\packages\requests\packages\urllib3\con
nectionpool.py", line 649, in urlopen
    _stacktrace=sys.exc_info()[2])
  File "C:\Users\Ddr\Downloads\streamlink\packages\requests\packages\urllib3\uti
l\retry.py", line 376, in increment
    raise MaxRetryError(_pool, url, error or ResponseError(cause))
requests.packages.urllib3.exceptions.MaxRetryError: HTTPConnectionPool(host='86.
57.146.126', port=3128): Max retries exceeded with url: http://www.tvr.by/televi
denie/belarus-2/ (Caused by ProxyError('Cannot connect to proxy.', NewConnection
Error('<requests.packages.urllib3.connection.HTTPConnection object at 0x02C8CE30
>: Failed to establish a new connection: [WinError 10061] Aucune connexion n\u20
19a pu être établie car l\u2019ordinateur cible l\u2019a expressément refusée',)
))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink\plugin\api\http_se
ssion.py", line 164, in request
    *args, **kwargs)
  File "C:\Users\Ddr\Downloads\streamlink\packages\requests\sessions.py", line 4
88, in request
    resp = self.send(prep, **send_kwargs)
  File "C:\Users\Ddr\Downloads\streamlink\packages\requests\sessions.py", line 6
09, in send
    r = adapter.send(request, **kwargs)
  File "C:\Users\Ddr\Downloads\streamlink\packages\requests\adapters.py", line 4
85, in send
    raise ProxyError(e, request=request)
requests.exceptions.ProxyError: HTTPConnectionPool(host='86.57.146.126', port=31
28): Max retries exceeded with url: http://www.tvr.by/televidenie/belarus-2/ (Ca
used by ProxyError('Cannot connect to proxy.', NewConnectionError('<requests.pac
kages.urllib3.connection.HTTPConnection object at 0x02C8CE30>: Failed to establi
sh a new connection: [WinError 10061] Aucune connexion n\u2019a pu être établie
car l\u2019ordinateur cible l\u2019a expressément refusée',)))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink_cli\main.py", line
 479, in handle_url
    streams = fetch_streams(plugin)
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink_cli\main.py", line
 391, in fetch_streams
    sorting_excludes=args.stream_sorting_excludes)
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink\plugin\plugin.py",
 line 321, in get_streams
    return self.streams(*args, **kwargs)
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink\plugin\plugin.py",
 line 236, in streams
    ostreams = list(ostreams)
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink\plugins\tvrby.py",
 line 38, in _get_streams
    res = http.get(self.url)
  File "C:\Users\Ddr\Downloads\streamlink\packages\requests\sessions.py", line 5
01, in get
    return self.request('GET', url, **kwargs)
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink\plugin\api\http_se
ssion.py", line 175, in request
    raise err
streamlink.exceptions.PluginError: Unable to open URL: http://www.tvr.by/televid
enie/belarus-2/ (HTTPConnectionPool(host='86.57.146.126', port=3128): Max retrie
s exceeded with url: http://www.tvr.by/televidenie/belarus-2/ (Caused by ProxyEr
ror('Cannot connect to proxy.', NewConnectionError('<requests.packages.urllib3.c
onnection.HTTPConnection object at 0x02C8CE30>: Failed to establish a new connec
tion: [WinError 10061] Aucune connexion n\u2019a pu être établie car l\u2019ordi
nateur cible l\u2019a expressément refusée',))))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\Ddr\Downloads\streamlink\\streamlink-script.py", line 12, in <m
odule>
    main()
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink_cli\main.py", line
 952, in main
    handle_url()
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink_cli\main.py", line
 483, in handle_url
    console.exit(u"{0}", err)
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink_cli\console.py", l
ine 69, in exit
    self.msg(u"{0}", msg)
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink_cli\console.py", l
ine 45, in msg
    self.output.write(formatted)
  File "encodings\cp850.py", line 19, in encode
UnicodeEncodeError: 'charmap' codec can't encode character '\u2019' in position
413: character maps to <undefined>

aes key error on launch

Hello @beardypig

With streamlink portable latest build, message below is displayed when it is started with aes key.
Is there any chance for workaround ?

Exception in thread Thread-1:
Traceback (most recent call last):
  File "threading.py", line 914, in _bootstrap_inner
  File "C:\Users\Ddr\Downloads\Temp\streamlink\packages\streamlink\stream\segmen
ted.py", line 160, in run
    self.write(segment, result)
  File "C:\Users\Ddr\Downloads\Temp\streamlink\packages\streamlink\stream\hls.py
", line 91, in write
    sequence.num)
     return AES.new(key_data, AES.MODE_CBC, iv)
  File "C:\Users\Ddr\Downloads\Temp\streamlink\packages\Crypto\Cipher\AES.py", l
ine 260, in new
    return _create_cipher(sys.modules[__name__], key, mode, *args, **kwargs)
  File "C:\Users\Ddr\Downloads\Temp\streamlink\packages\Crypto\Cipher\__init__.p
y", line 130, in _create_cipher
    return modes[mode](factory, **kwargs)
  File "C:\Users\Ddr\Downloads\Temp\streamlink\packages\Crypto\Cipher\_mode_cbc.
py", line 232, in _create_cbc_cipher
    cipher_state = factory._create_base_cipher(kwargs)
  File "C:\Users\Ddr\Downloads\Temp\streamlink\packages\Crypto\Cipher\AES.py", l
ine 127, in _create_base_cipher
    expect_byte_string(key)
  File "C:\Users\Ddr\Downloads\Temp\streamlink\packages\Crypto\Util\_raw_api.py"
, line 172, in expect_byte_string
    raise TypeError("Only byte strings can be passed to C code")
TypeError: Only byte strings can be passed to C code

OSError: Cannot load native module 'Crypto.Cipher._raw_ecb'

Just downloaded streamlink-portable-2.1.1-py3.6.5-amd64.zip, unpacked the streamlink folder inside in C:\bin.

Tried this, then, on Windows 10 Home 64-bit:

C:\>cd C:\bin\streamlink

C:\bin\streamlink>streamlink.bat
Traceback (most recent call last):
  File "C:\bin\streamlink\\streamlink-script.py", line 11, in <module>
    from streamlink_cli.main import main
  File "C:\bin\streamlink\packages\streamlink_cli\main.py", line 25, in <module>
    from streamlink.stream import StreamProcess
  File "C:\bin\streamlink\packages\streamlink\stream\__init__.py", line 5, in <module>
    from streamlink.stream.hls import HLSStream
  File "C:\bin\streamlink\packages\streamlink\stream\hls.py", line 8, in <module>
    from Crypto.Cipher import AES
  File "C:\bin\streamlink\packages\Crypto\Cipher\__init__.py", line 27, in <module>
    from Crypto.Cipher._mode_ecb import _create_ecb_cipher
  File "C:\bin\streamlink\packages\Crypto\Cipher\_mode_ecb.py", line 47, in <module>
    """
  File "C:\bin\streamlink\packages\Crypto\Util\_raw_api.py", line 297, in load_pycryptodome_raw_lib
    raise OSError("Cannot load native module '%s': %s" % (name, ", ".join(attempts)))
OSError: Cannot load native module 'Crypto.Cipher._raw_ecb': Trying '_raw_ecb.cp36-win_amd64.pyd': [WinError 126] The specified module could not be found, Trying '_raw_ecb.pyd': [WinError 193] %1 is not a valid Win32 application

C:\bin\streamlink>

Not sure what the problem is ... Ah, i guess this - in MSYS2 bash terminal:

$ find packages/Crypto/ -name '*ecb*'
packages/Crypto/Cipher/_mode_ecb.py
packages/Crypto/Cipher/_mode_ecb.pyi
packages/Crypto/Cipher/_raw_ecb.pyd
packages/Crypto/Cipher/__pycache__/_mode_ecb.cpython-36.pyc

$ file packages/Crypto/Cipher/_raw_ecb.pyd
packages/Crypto/Cipher/_raw_ecb.pyd: PE32 executable (DLL) (GUI) Intel 80386, for MS Windows

So, the .pyd is 32-bit - but as this is a 64-build, maybe that is the problem?

Tried deleting, byt .pyd does not get reconstructed automatically:

$ find packages/ -name '*.pyd' | while read file; do rm -v $file; done
removed 'packages/Crypto/Cipher/_ARC4.pyd'
removed 'packages/Crypto/Cipher/_chacha20.pyd'
removed 'packages/Crypto/Cipher/_raw_aes.pyd'
removed 'packages/Crypto/Cipher/_raw_aesni.pyd'
removed 'packages/Crypto/Cipher/_raw_arc2.pyd'
removed 'packages/Crypto/Cipher/_raw_blowfish.pyd'
removed 'packages/Crypto/Cipher/_raw_cast.pyd'
removed 'packages/Crypto/Cipher/_raw_cbc.pyd'
removed 'packages/Crypto/Cipher/_raw_cfb.pyd'
removed 'packages/Crypto/Cipher/_raw_ctr.pyd'
removed 'packages/Crypto/Cipher/_raw_des.pyd'
removed 'packages/Crypto/Cipher/_raw_des3.pyd'
removed 'packages/Crypto/Cipher/_raw_ecb.pyd'
removed 'packages/Crypto/Cipher/_raw_eksblowfish.pyd'
removed 'packages/Crypto/Cipher/_raw_ocb.pyd'
removed 'packages/Crypto/Cipher/_raw_ofb.pyd'
removed 'packages/Crypto/Cipher/_Salsa20.pyd'
removed 'packages/Crypto/Hash/_BLAKE2b.pyd'
removed 'packages/Crypto/Hash/_BLAKE2s.pyd'
removed 'packages/Crypto/Hash/_ghash_clmul.pyd'
removed 'packages/Crypto/Hash/_ghash_portable.pyd'
removed 'packages/Crypto/Hash/_keccak.pyd'
removed 'packages/Crypto/Hash/_MD2.pyd'
removed 'packages/Crypto/Hash/_MD4.pyd'
removed 'packages/Crypto/Hash/_MD5.pyd'
removed 'packages/Crypto/Hash/_poly1305.pyd'
removed 'packages/Crypto/Hash/_RIPEMD160.pyd'
removed 'packages/Crypto/Hash/_SHA1.pyd'
removed 'packages/Crypto/Hash/_SHA224.pyd'
removed 'packages/Crypto/Hash/_SHA256.pyd'
removed 'packages/Crypto/Hash/_SHA384.pyd'
removed 'packages/Crypto/Hash/_SHA512.pyd'
removed 'packages/Crypto/Math/_modexp.pyd'
removed 'packages/Crypto/Protocol/_scrypt.pyd'
removed 'packages/Crypto/PublicKey/_ec_ws.pyd'
removed 'packages/Crypto/Util/_cpuid_c.pyd'
removed 'packages/Crypto/Util/_strxor.pyd'

$ cmd.exe //c streamlink.bat
Traceback (most recent call last):
  File "C:\bin\streamlink\\streamlink-script.py", line 11, in <module>
    from streamlink_cli.main import main
  File "C:\bin\streamlink\packages\streamlink_cli\main.py", line 25, in <module>
    from streamlink.stream import StreamProcess
  File "C:\bin\streamlink\packages\streamlink\stream\__init__.py", line 5, in <module>
    from streamlink.stream.hls import HLSStream
  File "C:\bin\streamlink\packages\streamlink\stream\hls.py", line 8, in <module>
    from Crypto.Cipher import AES
  File "C:\bin\streamlink\packages\Crypto\Cipher\__init__.py", line 27, in <module>
    from Crypto.Cipher._mode_ecb import _create_ecb_cipher
  File "C:\bin\streamlink\packages\Crypto\Cipher\_mode_ecb.py", line 47, in <module>
    """
  File "C:\bin\streamlink\packages\Crypto\Util\_raw_api.py", line 297, in load_pycryptodome_raw_lib
    raise OSError("Cannot load native module '%s': %s" % (name, ", ".join(attempts)))
OSError: Cannot load native module 'Crypto.Cipher._raw_ecb': Trying '_raw_ecb.cp36-win_amd64.pyd': [WinError 126] The specified module could not be found, Trying '_raw_ecb.pyd': [WinError 126] The specified module could not be found

Well, at least no more of "is not a valid Win32 application" ...


EDIT: tried latest nightly, streamlink-portable-2.1.1+9.g44d4afa-py3.7.9-amd64.zip - that one seems to work:

C:\bin\streamlink>streamlink.bat
usage: streamlink [OPTIONS] <URL> [STREAM]

Use -h/--help to see the available options or read the manual at https://streamlink.github.io

So, that's good - I'm OK, but I'll leave the bug open, since as I understood it, streamlink-portable-2.1.1-py3.6.5-amd64.zip is still official stable release, and it seems it is broken.

ovva.tv : the JSON object must be str, not 'bytes'

I reproduce error with your latest streamlink release :

streamlink "https://ovva.tv/tvguide/1plus1/online"
[cli][info] Found matching plugin ovvatv for URL https://ovva.tv/tvguide/1plus1/
online
Traceback (most recent call last):
  File "C:\Users\Ddr\Downloads\streamlink\\streamlink-script.py", line 12, in <m
odule>
    main()
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink_cli\main.py", line
 952, in main
    handle_url()
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink_cli\main.py", line
 479, in handle_url
    streams = fetch_streams(plugin)
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink_cli\main.py", line
 391, in fetch_streams
    sorting_excludes=args.stream_sorting_excludes)
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink\plugin\plugin.py",
 line 321, in get_streams
    return self.streams(*args, **kwargs)
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink\plugin\plugin.py",
 line 230, in streams
    ostreams = self._get_streams()
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink\plugins\ovvatv.py"
, line 53, in _get_streams
    ovva_url = parse_json(b64decode(data.group(1)), schema=self.ovva_data_schema
)
  File "C:\Users\Ddr\Downloads\streamlink\packages\streamlink\utils\__init__.py"
, line 54, in parse_json
    json_data = json.loads(data)
  File "json\__init__.py", line 312, in loads
TypeError: the JSON object must be str, not 'bytes'

Getting the portable version to work with Daisuki.net

Good Day,

I've been using this Daisuki plugin for many months:

https://gist.github.com/intact/3d6af5f361c1a44fd878

Simply changing a few things from:

from livestreamer.compat import urljoin, urlparse, urlunparse
from livestreamer.exceptions import PluginError
from livestreamer.plugin import Plugin
from livestreamer.plugin.api import http, validate
from livestreamer.plugin.api.utils import parse_json
from livestreamer.stream import HLSStream

To:

from streamlink.compat import urljoin, urlparse, urlunparse
from streamlink.exceptions import PluginError
from streamlink.plugin import Plugin
from streamlink.plugin.api import http, validate
from streamlink.plugin.api.utils import parse_json
from streamlink.stream import HLSStream

The "plain vanilla" version of Streamlink is working fine with WinPython 3.5.2.3 and PyCryptodome 3.4.5 so far:

image

However, I built the Standalone EXE version of Streamlink Portable and that seemed to be no go:

image

Tried CrunchyRoll instead and it's OK:

image

Replaced the entire folder %TMP%\RTV_STREAMLINK_FOR_WINDOWS\Streamlink\Crypto with the counterpart taken from that WinPython 3.5.2.3 + PyCryptodome 3.4.5 as mentioned above:

image

There's gotta be a way to integrate PyCryptodome and I'm just wondering how that Standalone EXE should be built in the first place without showing any errors at all.

Thank you very much for your help and have a great day.

Create stable versions

There are only nightly versions at the moment. There should be stable versions built from the latest tag. Only use the last tag, as building all the tags every time would get very time consuming after a while.

Nightly Version Woes

Similar to the issue I opened here, I'm unable to make Streamlink Twitch GUI work with the current Streamlink Portable nightly I think because of a versioning error. streamlink -V produces 0+untagged.112.g965c375. If this is the expected output, and it's a matter of Streamlink Twitch GUI not liking it, I'll be happy to reopen my original issue there.

Thanks for any assistance.

404 on stable portable version + other issues...

Hello @beardypig 😃 I do hope you're OK!
Revisiting streamlink and your splendid side-project here, after many months of absence...

Having always been a portable version fan, I'm not (that) affected from streamlink/streamlink#1476 ; however, I totally relied upon your precompiled portable nightly versions, that used to show up in your AWS repo... The last version obtainable from there is streamlink-portable-0.5.0-20170510-g9ad8bb2-py3.5.2-win32 .
I now realise this is because of 2665746; over to Bintray, then 😉

First thing to notice is there's no retention in that repo (i.e. several days' worth of previous builds), but I suspect this was done out of bandwidth considerations... Second thing is there's no indication in the hosted/downloaded package of the code snapshot it is derived from (as was the case with the AWS repo); from README.md:

The portable zip files are build from the master branch of streamlink/streamlink

So, am I to assume that if I download now, I'll end up with
streamlink-portable-0.10.0-20180227-g91d3e77-py3.5.4-win32
(in accordance with the AWS naming template)?
And my real question is, can your build/bintray uploading script be revised as to create an informative nightly package filename, along the lines of what was previously in place for AWS? I certainly am oblivious to the bintray specifics, please pardon me if this is an invalid request 😊

Stable (aka release) portable versions:

I, too, used to get those from your AWS repo, the latest that can be fetched from there is
streamlink-portable-0.5.0-py3.5.2-win32
Again, 2665746 implies that stable portable releases are now hosted on GitHub; but the latest pre-compiled stable release to be found there is streamlink-portable-0.7.0-py3.5.2-win32 from last July 2017 (BTW, that should've been labelled as "streamlink-portable-0.7.0-py3.5.3-win32", as it contains Python 3.5.3).
Additionally, the main streamlink page links to here, where no stable package resides 😢 ; even worse, README.md on this repo informs that

A stable version is also available, based on the 0.10.0 tag of streamlink:

but both included links return a 404 from GitHub... 😕
Obviously, there's something gone awry with stable releases on GitHub 😧

One final, important to me, issue:
My OS is (still, by necessity) Windows Vista SP2 32-bit, but fully updated with post EOL M$ updates prepared for Vista's server counterpart (WS2008SP2, more at MSFN); I am not running a bot!
I don't know what your personal intentions are towards Vista support, you can easily bail out by citing vendor's EOL, but, just so you know, Python 3.5.x and even 3.6.x is still Vista SP2 compatible, so I guess the streamlink script itself is too:

Windows Vista requires at least SP2 to be installed

The unfortunate fact is that 8de5aaf has broken your portable builds (nightly+stable) on Vista (SP2); at least on my laptop (en-US is the OS locale), executables (including batch files) with cp65001 don't seem to start/run normally when invoked from the cmd line/from within .bat|.cmd files; don't ask me why, I've searched this issue a lot (currently also afflicts MP4Box.exe binaries on Vista) but found nothing concrete (or a workaround I could apply on my system); sure thing is, this issue does not manifest on Windows 7 and higher... So, I have to comment out this commit on the downloaded streamlink.bat file:

@echo off
::REM Change the code page for UTF8
::chcp 65001 >NUL
::set PYTHONIOENCODING=cp65001
"%~dp0\python\python.exe" "%~dp0\streamlink-script.py" --ffmpeg-ffmpeg "%~dp0\ffmpeg\ffmpeg.exe" --rtmp-rtmpdump "%~dp0\rtmpdump\rtmpdump.exe" --config "%~dp0\streamlinkrc" %* --no-version-check

to be able to run your portable builds on my OS (which I do by creating a shortcut to
cmd /k Streamlink -V && Streamlink, saving it as Run_StreamlinkPortable.lnk, placing it alongside your batch file and clicking that when required...)

Thanks a bunch for the code you contribute to the streamlink project, for this effort here (portable win-builds) and for your patience and understanding while reading this lengthy report! ❤️

Best wishes,
Vangelis

Latest Nightly build release failed...

Happy New Year @beardypig 😄

I am watching the Nightly portable build releases since a while ago and
just became aware that the usual, daily, GitHub e-mail titled
[beardypig/streamlink-portable] Pre-release latest - Nightly Build
from github-actions[bot] is AWOL... 😞
That would've been announcing the availability of
streamlink-portable-2.0.0+16.g7b74974-py3.6.5-win32.zip

I browsed the Actions tab and regrettably saw that the build creation has failed:

SL-Nightly_fail

Perhaps recent repo activity has somehow broken things?
These portable builds of yours are highly appreciated 👍 , as the other portable streamlink package has been sadly abandoned 😭 ...

While I'm at it, would you mind if I asked some related questions?

  1. PSF has 3.6.8-win32 binaries available, can these be used instead of 3.6.5?
  2. Would it be hard to move to latest py3.7 (3.7.9 to be exact)?
  3. What is the underlying reason some modules are "frozen" at older versions (e.g. pycryptodome-3.4.3 used, latest being 3.9.9)?

Many thanks, my heartfelt wishes for 2021, stay healthy and safe wherever you happen to be...

Travis configuration issue?

streamlink's codebase has stayed put on commit streamlink/streamlink@2358e7a
due to issue streamlink/streamlink#310 .

This is well reflected on streamlink's nightly installer S3 repo, on
https://streamlink-builds.s3.amazonaws.com/index.html
where the latest compile is streamlink-0.2.0-428-2358e7a.exe
dated Dec 17th.

However, on the streamlink-portable/nightly S3 repo,
https://s3.amazonaws.com/streamlink-portable/index.html
one can see that travis continues to build what appear to be
identical (all based off commit git-2358e7a) windows zips
even after Dec 17th - e.g. at the time of posting, there exist
seven win32 zips all built off of git-2358e7a; perhaps this is
by design, but isn't it an unjustifiable waste of resources/
storage space on S3 that way?
I don't claim to be an expert on this matter,
but what would be ideal is that travis triggers a new zip if

  1. Actual streamlink code has changed since the last successful build
    or/and
  2. The code of the streamlink-portable script itself has changed
    since the last successful build.

Regard this reported issue as an enhancement suggestion,
not as critisism; your constant coding efforts, primarily on
the streamlink repo as well as on this one, are highly
appreciated! 🥇

Happy Holidays 😄

Win7 compatibility for future releases

Hi team. Recent builds of non-portable streamlink for windows (2.4.0 and above) are dropped win7 support. Is it true, that future versions of portable streamlink will still work on win7?

Stable releases are still being built with Python 3.6.5

As always, many thanks for offering and maintaining this portable edition of streamlink 👍 ; it's the only version of streamlink I ever use...
In 00749df, one gets the impression (by the commit's title) all portable packages (nightly+release) have been updated to Python 3.7.9, but upon closer inspection of the latest stable release, 2.1.0 (with 2.1.1, no doubt, on the way 😉.), one sees it is still built on Python 3.6.5 ...

Referenced commit only touched the nightly workflow file (.github/workflows/nightly.yml), but not the release one, hence the discrepancy... Was that just an omission or a deliberate decision to "freeze" release packages on py3.6?

Thanks in advance for any insight, best wishes! 😄

OT (slightly) : A third party has been compiling and offering Windows builds of Python versions under security-only maintenance (i.e. Python versions for which the PSF do not provide binaries), I have tried myself v3.6.13 (from here) with the release packages (overwriting the 3.6.5 files) and v3.7.10 (from here) with the nightly packages (overwriting the 3.7.9 files), I have encountered no issues whatsoever with them! Just as a FYI for users feeling adventurous... 😉

Failed to load plugin vaughnlive

After having updated streamlink portable nightlies build I get such message in command line :

Failed to load plugin vaughnlive:
  File "imp.py", line 234, in load_module
  File "imp.py", line 172, in load_source
  File "<frozen importlib._bootstrap>", line 693, in _load
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 673, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "C:\Users\Ddr\Downloads\Temp\streamlink\packages\streamlink\plugins\vaugh
nlive.py", line 5, in <module>
    import websocket
ImportError: No module named 'websocket'

usage: streamlink-script.py [OPTIONS] <URL> [STREAM]

Use -h/--help to see the available options or read the manual at https://streaml
ink.github.io

With your latest commit it's same result.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.