Skip to content

Conversation

@beardypig
Copy link
Member

Changes to the behaviour of the progress bar when using -o.

If there is no tty available for output (eg. when piping, or running a subprocess), then no progress bar is output. This is because the progress bar rewrites the console, which is only possible on interactive terminals not for a pipe.

If there is no tty available for input and the file already exists an error is given instead of a prompt to the user.

Should fix #1770.


if answer.lower() != "y":
sys.exit()
elif os.path.isfile(filename):
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

--force won't work, and not force is required

instead of repeating it, it could be called first and isatty could be used after it

    if os.path.isfile(filename) and not force:
        if sys.stdin.isatty():
            answer = console.ask("File {0} already exists! Overwrite it? [y/N] ",
                                 filename)

            if answer.lower() != "y":
                sys.exit()
        else:
            log.error("File {0} already exists, use --force to overwrite it.".format(filename))
            sys.exit()

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep. My bad :)

Changes to the behaviour of the progress bar when using -o.

If there is no tty available for output (eg. when piping, or running a
subprocess), then no progress bar is output. This is because the
progress bar rewrites the console, which is only possible on interactive
terminals not for a pipe.

If there is no tty available for input and the file already exists an
error is given instead of a prompt to the user.
@beardypig
Copy link
Member Author

beardypig commented Oct 22, 2018

Hmm. I pushed some changes to my branch but it doesn't seem to have updated.

Update: Just real slow...

@bastimeyer
Copy link
Member

@beardypig
Copy link
Member Author

That's a bunch of red :)

@codecov
Copy link

codecov bot commented Oct 23, 2018

Codecov Report

Merging #2090 into master will increase coverage by 0.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master    #2090      +/-   ##
==========================================
+ Coverage   51.31%   51.32%   +0.01%     
==========================================
  Files         232      232              
  Lines       14184    14187       +3     
==========================================
+ Hits         7278     7281       +3     
  Misses       6906     6906

@gravyboat
Copy link
Member

Looks good, thanks @beardypig.

@gravyboat gravyboat merged commit d022e9b into streamlink:master Oct 23, 2018
@Quaraxkad
Copy link

Quaraxkad commented Mar 2, 2019

With this change, how can an external process monitor the progress of streamlink while it's running? Used to be able to capture the stdout and parse for progress/speed/etc.

jackyzy823 pushed a commit to jackyzy823/streamlink that referenced this pull request Mar 20, 2019
…ink#2090)

* cli: disable progress output for -o when no tty is available

Changes to the behaviour of the progress bar when using -o.

If there is no tty available for output (eg. when piping, or running a
subprocess), then no progress bar is output. This is because the
progress bar rewrites the console, which is only possible on interactive
terminals not for a pipe.

If there is no tty available for input and the file already exists an
error is given instead of a prompt to the user.

* Updated tests
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Apr 1, 2020
streamlink 1.3.1 (2020-01-27)

A small patch release that addresses the removal of MPV's legacy option syntax, also with fixes of several plugins, the addition of the --twitch-disable-reruns parameter and dropped support for Python 3.4.

streamlink 1.3.0 (2019-11-22)

A new release with plugin updates and fixes, including Twitch.tv (see #2680), which had to be delayed due to back and forth API changes.

The Twitch.tv workarounds mentioned in #2680 don't have to be applied anymore, but authenticating via --twitch-oauth-token has been disabled, regardless of the origin of the OAuth token (via --twitch-oauth-authenticate or the Twitch website). In order to not introduce breaking changes, both parameters have been kept in this release and the user name will still be logged when using an OAuth token, but receiving item drops or accessing restricted streams is not possible anymore.

Plugins for the following sites have also been added:

    albavision
    news.now.com
    twitcasting.tv
    viu.tv
    vlive.tv
    willax.tv

streamlink 1.2.0 (2019-08-18)

Here are the changes for this month's release

    Multiple plugin fixes
    Fixed single hyphen params at the beginning of --player-args (#2333)
    --http-proxy will set the default value of --https-proxy to same as --http-proxy. (#2536)
    DASH Streams will handle headers correctly (#2545)
    the timestamp for FFMPEGMuxer streams will start with zero (#2559)

streamlink 1.1.1 (2019-04-02)

This is just a small patch release which fixes a build/deploy issue with the new special wheels for Windows on PyPI. (#2392)

streamlink 1.0.0 (2019-01-30)

The celebratory release of Streamlink 1.0.0!

A lot of hard work has gone into getting Streamlink to where it is. Not only is Streamlink used across multiple applications and platforms, but companies as well.

Streamlink started from the inaugural fork of Livestreamer on September 17th, 2016.

Since then, We've hit multiple milestones:

    Over 886 PRs
    Hit 3,000 commits in Streamlink
    Obtaining our first sponsors as well as backers of the project
    The creation of our own logo (streamlink/streamlink#1123)

Thanks to everyone who has contributed to Streamlink (and our backers)! Without you, we wouldn't be where we are today.

Without further ado, here are the changes in release 1.0.0:

    We have a new icon / logo for Streamlink! (streamlink/streamlink#2165)
    Updated dependencies (streamlink/streamlink#2230)
    A ton of plugin updates. Have a look at this search query for all the recent updates.
    You can now provide a custom key URI to override HLS streams (streamlink/streamlink#2139). For example: --hls-segment-key-uri <URI>
    User agents for API communication have been updated (streamlink/streamlink#2194)
    Special synonyms have been added to sort "best" and "worst" streams (streamlink/streamlink#2127). For example: streamlink --stream-sorting-excludes '>=480p' URL best,best-unfiltered
    Process output will no longer show if tty is unavailable (streamlink/streamlink#2090)
    We've removed BountySource in favour of our OpenCollective page. If you have any features you'd like to request, please open up an issue with the request and possibly consider backing us!
    Improved terminal progress display for wide characters (streamlink/streamlink#2032)
    Fixed a bug with dynamic playlists on playback (streamlink/streamlink#2096)
    Fixed makeinstaller.sh (streamlink/streamlink#2098)
    Old Livestreamer deprecations and API references were removed (streamlink/streamlink#1987)
    Dependencies have been updated for Python (streamlink/streamlink#1975)
    Newer and more common User-Agents are now used (streamlink/streamlink#1974)
    DASH stream bitrates now round-up to the nearest 10, 100, 1000, etc. (streamlink/streamlink#1995)
    Updated documentation on issue templates (streamlink/streamlink#1996)
    URL have been added for better processing of HTML tags (streamlink/streamlink#1675)
    Fixed sort and prog issue (streamlink/streamlink#1964)
    Reformatted issue templates (streamlink/streamlink#1966)
    Fixed crashing bug with player-continuous-http option (streamlink/streamlink#2234)
    Make sure all dev dependencies (streamlink/streamlink#2235)
    -r parameter has been replaced for --rtmp-rtmpdump (streamlink/streamlink#2152)

Breaking changes:

    A large number of unmaintained or NSFW plugins have been removed. You can find the PR that implemented that change here: streamlink/streamlink#2003 . See our CONTRIBUTING.md documentation for plugin policy.
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Apr 6, 2020
streamlink 1.3.1 (2020-01-27)

A small patch release that addresses the removal of MPV's legacy option syntax, also with fixes of several plugins, the addition of the --twitch-disable-reruns parameter and dropped support for Python 3.4.

streamlink 1.3.0 (2019-11-22)

A new release with plugin updates and fixes, including Twitch.tv (see #2680), which had to be delayed due to back and forth API changes.

The Twitch.tv workarounds mentioned in #2680 don't have to be applied anymore, but authenticating via --twitch-oauth-token has been disabled, regardless of the origin of the OAuth token (via --twitch-oauth-authenticate or the Twitch website). In order to not introduce breaking changes, both parameters have been kept in this release and the user name will still be logged when using an OAuth token, but receiving item drops or accessing restricted streams is not possible anymore.

Plugins for the following sites have also been added:

    albavision
    news.now.com
    twitcasting.tv
    viu.tv
    vlive.tv
    willax.tv

streamlink 1.2.0 (2019-08-18)

Here are the changes for this month's release

    Multiple plugin fixes
    Fixed single hyphen params at the beginning of --player-args (#2333)
    --http-proxy will set the default value of --https-proxy to same as --http-proxy. (#2536)
    DASH Streams will handle headers correctly (#2545)
    the timestamp for FFMPEGMuxer streams will start with zero (#2559)

streamlink 1.1.1 (2019-04-02)

This is just a small patch release which fixes a build/deploy issue with the new special wheels for Windows on PyPI. (#2392)

streamlink 1.0.0 (2019-01-30)

The celebratory release of Streamlink 1.0.0!

A lot of hard work has gone into getting Streamlink to where it is. Not only is Streamlink used across multiple applications and platforms, but companies as well.

Streamlink started from the inaugural fork of Livestreamer on September 17th, 2016.

Since then, We've hit multiple milestones:

    Over 886 PRs
    Hit 3,000 commits in Streamlink
    Obtaining our first sponsors as well as backers of the project
    The creation of our own logo (streamlink/streamlink#1123)

Thanks to everyone who has contributed to Streamlink (and our backers)! Without you, we wouldn't be where we are today.

Without further ado, here are the changes in release 1.0.0:

    We have a new icon / logo for Streamlink! (streamlink/streamlink#2165)
    Updated dependencies (streamlink/streamlink#2230)
    A ton of plugin updates. Have a look at this search query for all the recent updates.
    You can now provide a custom key URI to override HLS streams (streamlink/streamlink#2139). For example: --hls-segment-key-uri <URI>
    User agents for API communication have been updated (streamlink/streamlink#2194)
    Special synonyms have been added to sort "best" and "worst" streams (streamlink/streamlink#2127). For example: streamlink --stream-sorting-excludes '>=480p' URL best,best-unfiltered
    Process output will no longer show if tty is unavailable (streamlink/streamlink#2090)
    We've removed BountySource in favour of our OpenCollective page. If you have any features you'd like to request, please open up an issue with the request and possibly consider backing us!
    Improved terminal progress display for wide characters (streamlink/streamlink#2032)
    Fixed a bug with dynamic playlists on playback (streamlink/streamlink#2096)
    Fixed makeinstaller.sh (streamlink/streamlink#2098)
    Old Livestreamer deprecations and API references were removed (streamlink/streamlink#1987)
    Dependencies have been updated for Python (streamlink/streamlink#1975)
    Newer and more common User-Agents are now used (streamlink/streamlink#1974)
    DASH stream bitrates now round-up to the nearest 10, 100, 1000, etc. (streamlink/streamlink#1995)
    Updated documentation on issue templates (streamlink/streamlink#1996)
    URL have been added for better processing of HTML tags (streamlink/streamlink#1675)
    Fixed sort and prog issue (streamlink/streamlink#1964)
    Reformatted issue templates (streamlink/streamlink#1966)
    Fixed crashing bug with player-continuous-http option (streamlink/streamlink#2234)
    Make sure all dev dependencies (streamlink/streamlink#2235)
    -r parameter has been replaced for --rtmp-rtmpdump (streamlink/streamlink#2152)

Breaking changes:

    A large number of unmaintained or NSFW plugins have been removed. You can find the PR that implemented that change here: streamlink/streamlink#2003 . See our CONTRIBUTING.md documentation for plugin policy.
Billy2011 pushed a commit to Billy2011/streamlink-27 that referenced this pull request May 14, 2020
…ink#2090)

* cli: disable progress output for -o when no tty is available

Changes to the behaviour of the progress bar when using -o.

If there is no tty available for output (eg. when piping, or running a
subprocess), then no progress bar is output. This is because the
progress bar rewrites the console, which is only possible on interactive
terminals not for a pipe.

If there is no tty available for input and the file already exists an
error is given instead of a prompt to the user.

* Updated tests
mkbloke pushed a commit to mkbloke/streamlink that referenced this pull request Aug 18, 2020
…ink#2090)

* cli: disable progress output for -o when no tty is available

Changes to the behaviour of the progress bar when using -o.

If there is no tty available for output (eg. when piping, or running a
subprocess), then no progress bar is output. This is because the
progress bar rewrites the console, which is only possible on interactive
terminals not for a pipe.

If there is no tty available for input and the file already exists an
error is given instead of a prompt to the user.

* Updated tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add an option to disable the download progress log message

5 participants