Streamlink: Streamlink for Windows (Release)

Created on 12 Nov 2016  路  69Comments  路  Source: streamlink/streamlink

With this program you can build a ready to work Streamlink release for Windows with a few clicks.
The generated release is always the latest available because the source is master.zip
Download: https://github.com/RosadinTV/Streamlink-for-Windows/archive/master.zip
Look at README.txt for requirements.

enhancement

Most helpful comment

@thinkpad4
Reads from the Streamlink folder, i think is more easy to access and more suitable for a portable program.

All 69 comments

Good Job. 馃憤
The next step is to package streamlink into exe. We can use pyinstaller or Nuitka for that.

@DragonzMaster Maybe in a future add a option to create a Standalone EXE.
I don't get along with python to exe compilers, so probably it will be a VB.NET approach.
But of course if you can use those compilers is fine, feel free to do what you want 馃槃

I mess around with them but unfortuntally facing some problems. Can't find the right way yet to do that.

@DragonzMaster Yeah, its some tricky, my plan is generate a .exe on the fly with embeded resources (streamlink+python) so when the exe opens it unpacks all to the temp directory (if required) and then execute the script.
Maybe dont work, its a thesis.

隆Hola! @RosadinTV
I spent the last hour testing your latest offering!

Since I am on Vista SP2 x86 currently, I barely meet the minimum OS requirements;
actually, the last version of .NET Framework 4.x officially supported by Microsoft on
Vista is 4.6, but I have managed to install manually .NET Framework 4.6.1 without
any issues so far (updates for .NetFW 4.6.1 must also be installed manually from Microsoft庐Update
Catalog site) - on the contrary, latest .NET Framework 4.6.2 won't install on Vista. :-{

Your app loads and runs fine on my setup (VistaSP2 x86, .NetFW 4.6.1) :
sfw

I am only nit picking here, but you could, of course, improve a bit the English wording,
for instance it did not dawn on me at first that I had to press the "Not completed" string
to initiate the download of streamlink source - "Start/Begin" would have been more
obvious, but again this is just me being peculiar... The same goes for starting the build process
of the end package...

Anyhow, the compilation of the package went along fine, the message on
the popup could be tailored further:

completion

(Again just me being difficult, but the commit hash could be trimmed to 7 characters,
also you need the adverb successfully there...).

Comparing the end compile to your previous release, that I was using so far,
I am seeing that some restructuring has taken place inside the "Streamlink"
directory, but all the tests I conducted on sites I often use have passed with
flying colours!
So, all in all a very commendable effort on your part !!! Highly appreciated here.

PS: Personally, I don't have a need for an .exe file. I created a windows shortcut file
that targets:
C:\Windows\System32\cmd.exe /k Streamlink.bat -V && Streamlink.bat
(with empty "Start in:" field) and use that to launch the command prompt!
I even toyed with the idea of converting Streamlink.bat => Streamlink.exe,
bust most BAT2EXE converters are simply wrappers that produce SFX .exe files.
The closer I got was with the app Advanced-Bat2Exe-converter,
but the (very small) streamlink.exe produced would not parse correctly URLs
that contained ampersands (&) (???).

隆Muchas gracias de nuevo!

@Vangelis66 Cool, thanks for testing.
I have assumed that the language would be poorly written, in fact i have only learned some english in the high school 馃槤
About the .exe i can make a Streamlink.exe with VB.NET that mades the same as Streamlink.bat
Probably in the next version i will make a flavor chooser with three options (Streamlink.bat, Streamlink.exe and Standalone Streamlink.exe)

@RosadinTV I can help you out with the English portion, do you want to get your installer code committed to the repository at some point?

@gravyboat would a separate repo under the streamlink org be more suitable?

Just a question, How the 0.2 release exe has been made ?? @gravyboat

@gravyboat Ok, thanks, soon i will post a .txt with the strings that i need in a 'good english'
And with the second question, i dont have problem with this but i dont know how we're going to do it, i mean .. in a release, a doc or something else?

@beardypig I'm not sure, we should see what the code structure looks like from @RosadinTV. My only concern about having it in a different repo is for when we automate the build/release process we'll have to somehow keep them in sync which could be annoying. Definitely warrants more discussion before a decision is reached! @DragonzMaster The 0.2 release executable was made by @sbstp and the code they have committed here: https://github.com/streamlink/streamlink/blob/master/script/makeinstaller.sh. @RosadinTV Sounds good! What we'll do is start adding your releases to the release page: https://github.com/streamlink/streamlink/releases even if we end up putting it in another repo we can still link it there as well as in the documentation.

@gravyboat I think a separate repo would be much more appropriate, they will be out of sync in terms of release anyway. I think it would be better to keep tools for building releases in separate repositories, especially if we want to change the way the builds are done. (I had a plan for automating the pynsist build using Windows docker containers...)

@beardypig Fair enough, we could always trigger a build from the other repo as well via Travis. Here's an example: https://hiddentao.com/archives/2016/08/29/triggering-travis-ci-build-from-another-projects-build/ shouldn't be much of a problem.

Ah that's useful... Good to know :-)

@gravyboat Cool, first I will make some changes in the application, then upload the files to translate, with that I guess it will be apt to be distributed.

The config file is still pending right?

@thinkpad4 You can find the streamlinkrc file inside the Streamlink folder.

Derp me, thanks

It reads it from there, right or from the appdata/roaming?

@thinkpad4
Reads from the Streamlink folder, i think is more easy to access and more suitable for a portable program.

It would be nice to make the streamlink.exe don't open a python console window after installing.

Hola @RosadinTV, I notice that you are patching a few for the streamlink python files... This could probably be avoided (which would make your version more future proof).

constants.py: rather than patching the path to the config file, you could pass the path to the config file in a command line argument in the bat file. --config allows you to specify more than one config file, by repeating --config, the config files are merged together with the last one having the highest priority.

"Python 3.5.2\python.exe" "Streamlink\streamlink-script.py" --config "Streamlink\streamlinkrc" %*

rtmpdump.py: instead of patching the path to rtmpdump you could specify it using --rtmp-rtmpdump, relative paths are not currently supported, but I have prepared a PR to fix that for you :)

"Python 3.5.2\python.exe" "Streamlink\streamlink-script.py" --rtmp-rtmpdump "Streamlink/rtmpdump/rtmpdump.exe" %*

argparser.py: Don't have a suggestion for this patch...
compat.py: I couldn't actually see a difference with the one in git :)

Hi @beardypig
Really like this suggested improvements, is a much safer option to indicate the path of both files since my previous replacement method can be broken with changes in the py files.
Use of relative path will not be necessary for my next version because I will use a VB console to start the processes, so I can specify absolute paths, however the support for relative paths is a good addition.
I will put two available options to build, a Portable EXE (Streamlink.exe, Streamlink and Python 3.5.2 folder) and a Standalone EXE (Streamlink.exe only)
Referred to compat.py i use that file to keep the dependencies frozen and thus avoid future errors, in case the file requires an update I will launch a new version of the program with the new corresponding modules and the new compat.py
Thanks 馃槃

Is there a chance to replace "Python 3.5.2\python.exe" "Streamlinkstreamlink-script.py" ...... python.exe with pythonw.exe ?

@DragonzMaster What is the point of doing that?

I have released a new version of the app, if anyone find a bug you can report it here.
@Vangelis66 i tried to correct the things you reported.
@gravyboat Do you have Windows to verify if some things needs a better english translation or do you prefer that I upload program screenshots?

@RosadinTV I have Windows, I just wasn't planning on installing the portable release since I already have the other one installed. What's easier for you? I don't think there are that many installation screens right?

Edit: If you want you can just post them in here (or just the strings themselves) and I can take a look.

@gravyboat Here is:
1
2
3

@RosadinTV These actually look pretty good already. Not many changes and most are nitpicks.

In the first screenshot for Step 2 it should probably be Step 2 - Download the latest release (so we keep the wording the same as step 3). You may also want to change Start task to something like Start downloading. Other than that this one looks good to me.

In the second screenshot we should probably change the dialog box title to say Notice, as Advice isn't a word typically used for that sort of pop up for English speakers (though I don't think notice is either but it's a bit more familiar to most English speakers and they will understand what it means). Both sentences in the dialog should be turned into the only sentence: Requested release was successfully built, you can find it inside the Releases folder (\path\to\folder), the other alternative (if you want to get fancy) is to do variable substitution so the user knows which release was built, in that event I would go with Release 0.0.3 was successfully built, you can find it inside the Releases folder (\path\to\folder). Either way I would recommend changing the code so it uses a folder called Releases instead of Release as the plural makes more sense both grammatically and for returning users.

In the third screenshot it's the same thing with the dialog box title, just modify that to Notice, and then remove available from the sentence as that isn't needed. It can just read It looks like you already have the latest version. Continue anyway? (I'm assuming that signo de interrogaci贸n at the beginning of Continue anyway is just due to your system settings for Spanish)

Past that it looks good to me, thanks for all of your hard work!

@gravyboat Cool, thanks for that tips.
The quesiton mark at the beggining is a mistake that I usually make because of the habit of writing in Spanish 馃槤

No worries, your English is way better than my Spanish so don't be hard on yourself.

@gravyboat What can i type to the Copyright/Authors mark? I thinked in something like 'The Streamlink Project' but you may think something better.

@RosadinTV The copyright now is just Streamlink as noted here: https://github.com/streamlink/streamlink/blob/master/docs/_themes/sphinx_rtd_theme_violet/LICENSE#L5 so I would just leave it like that.

@gravyboat Done, also i fixed some stuff related to streamlinkrc and applied all of your tips.
I think it looks great now, thanks all users for feedback and tips.
P.S.: Thanks for adding me to the organization 馃槃

Awesome thanks for working on that, it's great to have available for user! You're welcome, it's always good to add more people that are doing excellent work.

@RosadinTV wrote:

I have released a new version of the app, if anyone find a bug you can report it here.
@Vangelis66 i tried to correct the things you reported.

Hi Vladimir, apologies for showing up late - first, my timezone (UTC+02:00)
is way ahead of the Americas, so when you are up I am asleep, then out of
the house and then back late in the afternoon - second, it has been a horrid
day, when I came back home I found my laptop's power supply dead,
off I went again to buy a replacement :-(

Regarding your app, I tested all three of its iterations so far:
History for Streamlink for Windows (Compiled).zip

First I'll comment only on functionality, not the English strings.

1 - Your initial version, which is revision git-3dfe9cc, now compiles a broken portable package,
as predicted by @beardypig, due to 8260b82

usage: streamlink.bat [OPTIONS] [URL] [STREAM]
streamlink-script.py: error: argument --rtmp-rtmpdump/--rtmpdump/-r: expected on
e argument

If you are a fun of the batch file version (I know I am),
this can be easily fixed if file streamlinkrc is patched:

./Streamlink/streamlinkrc =>

- rtmpdump= 
+ rtmpdump=Streamlink\rtmpdump\rtmpdump.exe

2 - I tested your second version, revision git-3011d99, just this morning,
but I was in a hurry and never posted about it...
As you had announced, there's no choice to build a streamlink.bat flavour anymore;
I'm thus interested only in the "Portable EXE" version and have tested that one alone!
Am afraid it again compiles a broken portable package:

[Streamlink for Windows]
usage: streamlink.exe [OPTIONS] [URL] [STREAM]
streamlink-script.py: error: argument --rtmp-rtmpdump/--rtmpdump/-r: expected on
e argument

but, again, it can be fixed by patching the (now re-arranged) streamlinkrc file:

./streamlinkrc => 

- rtmpdump= 
+ rtmpdump=Streamlink\rtmpdump\rtmpdump.exe

3 - I finished testing your latest version, revision git-72dfd7f, just a short while ago;
the compiled portable package does not generate an error now, so I guess

i fixed some stuff related to streamlinkrc

must be responsible :-)
However, when the executable is run without arguments, it prints:

[Streamlink for Windows]
error: No plugin can handle URL: streamlink

I think I (and others) would've liked it to print

usage: streamlink.exe [OPTIONS] [URL] [STREAM]
Use -h/--help to see the available options 
or read the manual at 
http://docs.streamlink.io/

... And I don't know who's to blame here, but the included streamlinkrc file

  1. Now has too many empty lines (not the case in previous versions)
  2. Still contains references to Livestreamer!

Now, some final comments on the English strings used, I'm
also posting these for @gravyboat to review/consider:

What @RosadinTV's app is doing is it compiles/builds a
standalone portable installation (a portable package if you will)
based on the latest code snapshot (I think it's sometimes called
the git HEAD) extant on the Streamlink github repo - as such,
I had no objection to the string "latest version" - while,
as I think about it, "download latest snapshot" would be my pick.
"Download the latest release" might confuse some uninitiated
Windows users that the latest tag (stable) release is to be fetched.

About the final step 3, I would again stay away from the term "release";
what is being built is a "portable installation / portable package", or
even a "Portable Nightly Package", indeed akin to the Nightly portable
zip package of the original application (Livestreamer).

As for the "completion" pop-up, I would've picked the term "notification"
myself (see notice-vs-notification), but I guess I'm just being pedantic...
(And maybe @beardypig can give a hand here so that the generic version
"Release 0.0.2 (with the latest commits)" could become something more informative like
"Streamlink-0.0.2-xx-g1c85f0c-win32-portable", where "xx" the number of
commits ahead of latest tag 0.0.2).

Thank you all for your time and patience, @RosadinTV you're a legend!

Cheers

@Vangelis66 Thanks for testing and reviewing, this is really appreciated.
The bug about rtmdump ocurred because of the modification of the streamlinkrc file, it added a new line that indicated a null path for rtmpdump, so what I did in the last fix is ensure that all the lines become commented, but it seems that its adding more white lines than should be.
Regarding the second bug I can not reproduce it, i put streamlink.exe in cmd and returns "usage: streamlink.exe [OPTIONS] [URL] [STREAM]"
And finally i agree that Snapshot is a better way to call that type of release.
About the notice that reports the generated release versi贸n, i think that if we put more things than the actual release number is too much information for a standard user, but agree that showing release number may be a Little confusing (that is why i added "with the latest commit" but maybe we can put something better)
Meanwhile I'm going to fix the problem of lines in streamlinkrc
Edit: I didnt add the BAT flavor because it seems unnecessary to me, it does not have any benefit compared to the EXE, in fact it even has several disadvantages.
But if someone needs it I can add it without problems

@RosadinTV wrote:

Regarding the second bug I can not reproduce it,
i put streamlink.exe in cmd and returns
"usage: streamlink.exe [OPTIONS] [URL] [STREAM]"

... must get in bed now, but it's always reproducible here,
whether I build the portable EXE flavour:

bug

or the standalone EXE one...

G:\Applications\Streamlink\StreamlinkPortable[byRosadinTV]\Setup\v4.0[git]\03.St
reamlink_for_Windows_(Compiled)-g72dfd7f\Releases>streamlink.exe
[Streamlink] Extracting program ...
[Streamlink] Program successfully extracted
[Streamlink for Windows]
error: No plugin can handle URL: streamlink.exe

G:\Applications\Streamlink\StreamlinkPortable[byRosadinTV]\Setup\v4.0[git]\03.St
reamlink_for_Windows_(Compiled)-g72dfd7f\Releases>

I honestly hope this can be fixed...
Hasta luego!

@Vangelis66 I will try to fix it, goodbye 馃槃

@Vangelis66 looks like those references to livestreamer were in there from the start, must have been missed :)

@Vangelis66 Done.
Changelog:
-Fixed an error that added extra empty lines to streamlinkrc file
-Fixed an error that added wrong arguments to the process
-Changed step 2 string to "Download the latest snapshot"
Thanks for the report 馃槂

Hello again @RosadinTV 馃檪

Latest version of your app, revision git-6746eb3, has been downloaded and was used
to compile the "portable EXE" flavour of the portable win32 package, built off the latest
streamlink code snapshot, commit git-9844610.

-Fixed an error that added extra empty lines to streamlinkrc file

Confirmed :heavy_check_mark: :+1:

-Fixed an error that added wrong arguments to the process

When streamlink.exe is now launched without arguments, it prints

[Streamlink for Windows]
usage: streamlink.exe [OPTIONS] [URL] [STREAM]

Use -h/--help to see the available options or read the manual at http://docs.str
eamlink.io/

so, again, confirmed :heavy_check_mark: :+1:

-Changed step 2 string to "Download the latest snapshot"

That's a welcome change, thanks!

Thanks for the report 馃槂

You are very welcome!

... but I think I have stumbled upon yet another thing that
seems to be slightly out of place, a little annoyance if you will:

When I kill a live stream download (an RTMP one in the case below) via CTRL+C,
what is printed on the command prompt window (more like the order in which
it is printed) appears to be non-conventional:

G:\Applications\Streamlink\StreamlinkPortable[byRosadinTV]\Streamlink-g9844610_w
in32-g6746eb3>streamlink -l debug --http-proxy "UKproxyhost:80" -o "itv2-1800k.f
lv" "http://www.itv.com/hub/itv2" best
[Streamlink for Windows]
[cli][info] Found matching plugin itvplayer for URL http://www.itv.com/hub/itv2
[cli][info] Available streams: 1200k (worst), 1500k, 1800k (best)
[cli][info] Opening stream: 1800k (rtmp)
[cli][debug] Pre-buffering 8192 bytes
[cli][debug] Checking file output
[cli][debug] Writing stream to output
[download][itv2-1800k.flv] Written 2.2 MB (6s @ 204.4 KB/s)                    ^
C
G:\Applications\Streamlink\StreamlinkPortable[byRosadinTV]\Streamlink-g9844610_w
in32-g6746eb3>Interrupted! Closing currently open stream...
_ (blinking)

With livestreamer.exe (but even when I use your very first streamlink.exe portable
version from #86 (link STREAMLINK_WIN_RELEASE_0.0.2.zip), I get a normal behaviour,
i.e. first the message about stream interruption and then cmd prompt
reports working directory (with blinking underscore):

G:\Applications\Livestreamer\livestreamer-v1.12.2-120-gab80dbd>livestreamer -l d
ebug --http-proxy "UKproxyhost:80" -o "itv2-1800k.flv" "http://www.itv.com/hub/i
tv2" best
[cli][info] Found matching plugin itvhub for URL http://www.itv.com/hub/itv2
[cli][info] Available streams: 1200k (worst), 1500k, 1800k (best)
[cli][info] Opening stream: 1800k (rtmp)
[cli][debug] Pre-buffering 8192 bytes
[cli][debug] Checking file output
[cli][debug] Writing stream to output
[download][itv2-1800k.flv] Written 1.2 MB (4s @ 267.6 KB/s)                    I
nterrupted! Closing currently open stream...

G:\Applications\Livestreamer\livestreamer-v1.12.2-120-gab80dbd>_ (blinking)

(in both cases, "UKproxyhost" is a HTTP UK proxy used to access the geo-blocked
ITV playlist). Is the issue I report an expected one or am I again being a hypochondriac?

Very appreciative of all you have done so far in improving the functionality of this windows app 鉂わ笍

@Vangelis66
Again i will try to fix it haha
You're a real bug hunter 馃槣

Nice work. 馃憤 ,But why you didn't use the same steps in your guide at #86 to compile the standalone release !?

@DragonzMaster Because this way is better and cleaner.

@Vangelis66 Fixed 馃槃 (i think hahaha)

Can you upload the source without zipping it (to your repo) maybe like adding it to src folder ? @RosadinTV

@DragonzMaster Sure, no problem.

Thanks. 馃憤
Spanish everywhere 馃槀 馃敨

@DragonzMaster Only the code comments, i can't avoid it haha 馃槀

After installing streamlink using pip and latest source code from GitHub:

pip install https://github.com/streamlink/streamlink/archive/master.zip

there is an exe for streamlink in (%PYTHONDIR%\Scripts) which do the mission for me.

@DragonzMaster Yes, but this exe only acts as a 'shortcut' to the pip installed streamlink.
My release is focused on the portable, something that you can put on a pendrive and work.

@RosadinTV wrote:

You're a real bug hunter

... Yes I am! I hate :bug: :bug: :bug: (even the real life ones!) ...
But please, don't lose your patience with me :smiley:

Again i will try to fix it haha

... By trying to fix (and eventually fixing) reported bugs,
you are less prone in repeating them in future,
making you a better programmer in the long run,
don't you agree?

@Vangelis66 Fixed :smile: (i think hahaha)

Revision git-6ab6292 (Fixed console closing issue) was downloaded,
it was then used to compile latest streamlink snapshot, 0.1.0-g1ad9b9a.

I performed my usual test with the live ITV RTMP streams:

G:\Applications\Streamlink\StreamlinkPortable[byRosadinTV]\Streamlink-0.1.0-g1ad
9b9a_win32-g6ab6292>streamlink -l debug --http-proxy "UKproxyhost:80" -o "itv2-1
800k.flv" "http://www.itv.com/hub/itv2" best
[Streamlink for Windows]
[cli][info] Found matching plugin itvplayer for URL http://www.itv.com/hub/itv2
[cli][info] Available streams: 1200k (worst), 1500k, 1800k (best)
[cli][info] Opening stream: 1800k (rtmp)
[cli][debug] Pre-buffering 8192 bytes
[cli][debug] Checking file output
File itv2-1800k.flv already exists! Overwrite it? [y/N] y
[cli][debug] Writing stream to output
[download][itv2-1800k.flv] Written 5.0 MB (16s @ 198.3 KB/s)                   I
nterrupted! Closing currently open stream...
[End of Streamlink for Windows]

G:\Applications\Streamlink\StreamlinkPortable[byRosadinTV]\Streamlink-0.1.0-g1ad
9b9a_win32-g6ab6292>_

So YES, mui bien, that nasty vermin has been squashed to death :+1:
(I also saw you included the line [End of Streamlink for Windows] in the console output,
I guess this is OK, too!)

Finally, not a bug this time, rather a personal request (if I am entitled to one...);
I am calling streamlink portable via a windows shortcut in the app's directory,
cmd /k Streamlink -V && Streamlink
and this now prints:

[Streamlink for Windows]
streamlink-script.py 0.1.0
[End of Streamlink for Windows]
[Streamlink for Windows]
usage: streamlink.exe [OPTIONS] [URL] [STREAM]

Use -h/--help to see the available options or read the manual at http://docs.str
eamlink.io/
[End of Streamlink for Windows]

Could it be made that the streamlink version is printed by default when streamlink.exe
is called without arguments, something like this:

[Streamlink 0.1.0 for Windows]
usage: streamlink.exe [OPTIONS] [URL] [STREAM]

Use -h/--help to see the available options or read the manual at http://docs.str
eamlink.io/
[End of Streamlink for Windows]

What do other users think about this idea? Anyway,
thanks in advance for considering this...

My release is focused on the portable,
something that you can put on a pendrive and work.

... And that's the reason I am using it exclusively;
nicely placed on my external USB HD drive, can be
taken with me whenever needed, provided the host
machine can run it!
Indebted to you for maintaining it :heart:

BTW, stable release 0.1.0 has been out, however no mention
of this project in the releases page (?);
I thought the initial idea was to link to it...
But perhaps a better place would be here,
since, after all, it compiles a portable "Nightly" version.

Best regards

@Vangelis66 Hi, i like bug reports, i always write everything down and try to correct/fix as much as possible (Literally i have dozens of text files full of reports and to-do lists (mainly from other personal projects))
I like the suggestion to add the Streamlink version in the top, so I'll add it in the next version.
Regarding the distribution of the project, I dont know what would be the most appropriate way, it really isnt my specialty 馃槤 , @gravyboat suggested adding it to the release page, do what you think is more appropriate 馃槃

I wrote:

Could it be made that the streamlink version is printed by default when streamlink.exe
is called without arguments, something like this:

[Streamlink 0.1.0 for Windows]

Of course I know nothing about Visual Basic, but I discovered I could hardcode streamlink
version in the console output above by changing one line inside file PORTABLE_BUILD.vb

-Console.WriteLine("[Streamlink for Windows]")
+Console.WriteLine("[Streamlink 0.1.0-git for Windows]")

but the real solution would be to write code that pre-determines the
streamlink version from the downloaded source before the executable
is compiled - oh, how I wish I could code... :cry:

@Vangelis66 The good thing about VB is that it is quite easy to understand, I could even say that is human-readable.
For example to write the current version to the console:
Replace this line:

Console.WriteLine("[Streamlink for Windows]")

With:

    Dim RELEASE_VER_ACTUAL = url_trabajo_app & "\Streamlink\streamlink\__init__.py"
    If IO.File.Exists(RELEASE_VER_ACTUAL) Then
        RELEASE_VER_ACTUAL = IO.File.ReadAllText(RELEASE_VER_ACTUAL, Encoding.UTF8)
        RELEASE_VER_ACTUAL = RELEASE_VER_ACTUAL.ToLower.Remove(0, RELEASE_VER_ACTUAL.IndexOf("__version__ = ") + 15)
        RELEASE_VER_ACTUAL = RELEASE_VER_ACTUAL.Remove(RELEASE_VER_ACTUAL.IndexOf(Chr(34)))
        Console.WriteLine("[Streamlink " & RELEASE_VER_ACTUAL & " for Windows]")
    Else
        Console.WriteLine("[Streamlink for Windows]")
    End If

Cheers @RosadinTV :+1: :+1:

A million thanks for that code (obviously beyond my expertise),
that accomplishes perfectly what I requested:

[Streamlink 0.1.0 for Windows]
usage: streamlink.exe [OPTIONS] [URL] [STREAM]

Use -h/--help to see the available options or read the manual at http://docs.str
eamlink.io/
[End of Streamlink for Windows]

G:\Applications\Streamlink\StreamlinkPortable[byRosadinTV]\Streamlink-0.1.0-g0c2
926d_win32-g1141174>

As I've said previously, me being a tester, I would have liked
the 7-character commit HASH to be also present,
[Streamlink 0.1.0-git-0c2926d for Windows] or even [Streamlink 0.1.0-g0c2926d for Windows]
but I agree with your comment that this piece of info is
of little (or no) importance to a standard streamlink user...

OK, I think it's time for me to let you have your well-deserved peace of mind/rest! :smiley:
Gracias por todo!

@Vangelis66 Great, I'll add the git hash visualization on the next versi贸n :)

Thanks a lot for your dedicated work on this, was waiting for the portable version.

A little thing : when updating or downloading streamlink again from the updater, ( done it for testing ), the file streamlinkrc inside the Releases folder gets deleted and replaced by a new fresh one with default settings.

Wouldn't it be better to check if the file already exists and not replace it if it's already there? User may have changed some parameters and the file returns to default state when we update, all custom settings are lost.

Also i noticed that it still creates a folder in "C:\Users\username\AppData\Roamingstreamlink\" with a file cli.json apparently having the program version inside it, maybe to make it 100% portable it will be better to have this located in the streamlink program folder directly and not spread stuff anywhere else.

It's just little details that don't bother me much, I'm very happy with the program and all the hard work you put into making this portable, for guys like me not compiling them own stuff and who use it in portable way it's a must, so thanks again for this.

Btw i hope you make an application based on your work with the updater able to be used on different depots based on this same language program, will be a very nice tool to update and compile some stuff around for guys like me who don't compile the stuff themselves due to lack of knowledge and have to wait for a windows .exe released sometimes days later to profit of the changes made ;)

Thanks

@jalba69 wrote:

when updating or downloading streamlink again from the updater (done it for testing),
the file streamlinkrc inside the Releases folder gets deleted
and replaced by a new fresh one with default settings.

Hello :smile: What you say is indeed true, the default streamlinkrc file is the one contained inside
streamlink source (streamlink-master.zip) that gets downloaded during step 2 of the compiler app...

User may have changed some parameters and the file returns to default state
when we update, all custom settings are lost.

I was not affected by that, because I am not invoking streamlink directly from the Releases folder;
I have a dedicated "StreamlinkPortable" directory where I overwrite existing structure with only the
updated parts, namely Streamlink dir, Streamlink.exe and VERSION.txt

Wouldn't it be better to check if the file already exists and not replace it if it's already there?

I am confident this is well within @RosadinTV's programming skills, but until then
you can do the same yourself manually:

  1. Rename (back up) existing custom streamlinkrc file (inside Releases dir),
    prior to running the updater/compiler app.
  2. After the app has finished doing its job, delete the default streamlinkrc file
    and reinstate the custom one from the back-up :wink:

Regards

@RosadinTV :

Now that your app has a dedicated Github repo here with its very own issue tracker, wouldn't you prefer app-specific issues be created there rather than here?

Well, the streamlink project team has been very supportive and hospitable so far (many thanks),
but #155 (still open) will be lost among the plethora of future streamlink issues (already at number 200!).
I have the issue bookmarked myself, but others may find it difficult to locate...
Just my 2c

Best regards :smiley:

@Vangelis66 We've previously proposed creating a repo under the streamlink org but ultimate it's up to @RosadinTV as it is their code base.

@jalba69 I will fix the streamlinkrc issue, I do not think the streamlink folder inside appdata is relevant.
@Vangelis66 Yes, it would be more comfortable if the issues open in the repository.
@gravyboat I have no problem with that, do what you think is more useful or convenient, tell me if you need anything.
馃槃

@RosadinTV I made a new repo over here: https://github.com/streamlink/streamlink-portable, you'll have to resolve the conflict with the readme when you do the initial PR but that should be pretty easy.

Edit:

The fastest way to complete the transfer while retaining history is probably to do this: http://stackoverflow.com/questions/1425892/how-do-you-merge-two-git-repositories/10548919#10548919 then you can just open a PR when you push to your fork.

@gravyboat Thanks, really cool.
I'm going to correct a couple of things and then I will generate the PR.
Retaining the history doesnt matters, no commit was very descriptive 馃槢

@RosadinTV No problem! Retaining the commit history is nice in the event we ever have to roll something back that was far in the past, so if you can get the history there's no reason not to! Plus it maintains your activity within the project which is nice to have for crediting.

@gravyboat Ok, i will follow the instructions when the program is ready.

@gravyboat Forget to tell you that the PR is ready:
https://github.com/streamlink/streamlink-portable/pull/1

I merged that in, thanks @RosadinTV! I'm watching the repo now as well so I shouldn't miss these going forward. I think we can close this issue now right?

@gravyboat Excellent 馃槃

Was this page helpful?
0 / 5 - 0 ratings

Related issues

cdrage picture cdrage  路  45Comments

gimli520 picture gimli520  路  106Comments

bobvargas picture bobvargas  路  104Comments

cdrage picture cdrage  路  55Comments

whitetop picture whitetop  路  54Comments