Using subprocess to capture a progress line

Tim Johnson tim at akwebsoft.com
Tue Nov 10 18:51:02 EST 2015


* Chris Angelico <rosuav at gmail.com> [151110 14:35]:
> On Wed, Nov 11, 2015 at 9:47 AM, Tim Johnson <tim at akwebsoft.com> wrote:
> > I've written a command-line "wrapper" for youtube-dl, executing
> > youtube-dl as a subprocess.
> >
> > ------------------------------------------------------------------
> > youtube-dl reports download progress on one line. I.E. the line is
> > overwritten numerous times with no carriage return until the
> > downloading is finished.
> > ------------------------------------------------------------------
> >
> 
> Sounds to me like a possible buffering problem. But since youtube-dl
> is implemented in Python, you might find it easier to "pip install
> youtube_dl" and work with the methods directly:
> 
> >>> import youtube_dl
> >>> youtube_dl.YoutubeDL().download(["m39ydsOPSww"])

  Frankly, I'd prefer - in the long run - to use youtube_dl (the
  module).

  But, when I do as you have suggested (and have tried previously) I
  get the following:

  youtube_dl.utils.DownloadError: ERROR: no suitable InfoExtractor

  I've briefly researched the error and so far haven't come up with an
  solution - guessing that other setup code is needed ...

  As for the buffering issue, at this point, I'll try  using a
  lower-level function like sys.stdout.write when the line 
  tests for '[download]' and 'ETA'.

  :) more elegant solutions welcome. I do intend to investigate
  using youtube_dl, once subprocess has been dealt with.

  thanks for the quick reply

-- 
Tim 
http://www.akwebsoft.com, http://www.tj49.com



More information about the Python-list mailing list