6 years fix some pylint issues
Antonio Ospite [Fri, 15 Jan 2016 09:23:31 +0000 (10:23 +0100)] fix some pylint issues

  C: 59, 0: Unnecessary parens after 'assert' keyword (superfluous-parens)
  W: 67, 0: Bad indentation. Found 12 spaces, expected 8 (bad-indentation)
  C:232, 0: Exactly one space required after comma
          chunk_file = os.path.join(dest_dir,  chunks_quality, chunk_name)
                                            ^ (bad-whitespace)
  W:341, 0: Bad indentation. Found 8 spaces, expected 4 (bad-indentation)
  W:342, 0: Bad indentation. Found 12 spaces, expected 8 (bad-indentation)
  W:344, 0: Bad indentation. Found 8 spaces, expected 4 (bad-indentation)
  W:345, 0: Bad indentation. Found 12 spaces, expected 8 (bad-indentation)
  W:347, 0: Bad indentation. Found 12 spaces, expected 8 (bad-indentation)
  W:350, 0: Bad indentation. Found 8 spaces, expected 4 (bad-indentation)
  W:351, 0: Bad indentation. Found 8 spaces, expected 4 (bad-indentation)
  W:353, 0: Bad indentation. Found 8 spaces, expected 4 (bad-indentation)
  W:355, 0: Bad indentation. Found 8 spaces, expected 4 (bad-indentation)
  W:360, 0: Bad indentation. Found 8 spaces, expected 4 (bad-indentation)
  W:365, 0: Bad indentation. Found 8 spaces, expected 4 (bad-indentation)
  W:370, 0: Bad indentation. Found 8 spaces, expected 4 (bad-indentation)
  C:396, 0: Exactly one space required after comma
      parser.add_option("-v", "--video-stream",  metavar="<n>",
                                              ^ (bad-whitespace)
  C: 43, 0: Invalid constant name "__description" (invalid-name)
  C: 44, 0: Invalid constant name "__version" (invalid-name)
  C: 45, 0: Invalid constant name "__author_info" (invalid-name)
  W:100,32: Unused variable 'e' (unused-variable)
  W:112,17: Redefining name 'url' from outer scope (line 421) (redefined-outer-name)
  W:130, 4: Redefining name 'manifest' from outer scope (line 422) (redefined-outer-name)
  C:115, 7: Comparison to False should be 'not expr' or 'expr is False' (singleton-comparison)
  W:150,24: Redefining name 'manifest' from outer scope (line 422) (redefined-outer-name)
  W:156, 8: Redefining name 'url' from outer scope (line 421) (redefined-outer-name)
  W:156, 8: Unused variable 'url' (unused-variable)
  W:194, 4: Redefining name 'url' from outer scope (line 421) (redefined-outer-name)
  W:205, 4: Redefining name 'url' from outer scope (line 421) (redefined-outer-name)
  W:211,30: Redefining name 'manifest' from outer scope (line 422) (redefined-outer-name)
  C:213, 7: Comparison to False should be 'not expr' or 'expr is False' (singleton-comparison)
  C:221, 7: Comparison to False should be 'not expr' or 'expr is False' (singleton-comparison)
  C:234,11: Comparison to False should be 'not expr' or 'expr is False' (singleton-comparison)
  W:248,19: Redefining name 'manifest' from outer scope (line 422) (redefined-outer-name)
  W:306,22: Redefining name 'manifest' from outer scope (line 422) (redefined-outer-name)
  W:328,22: Redefining name 'manifest' from outer scope (line 422) (redefined-outer-name)
  W:335,20: Redefining name 'url' from outer scope (line 421) (redefined-outer-name)
  W:335,25: Redefining name 'manifest' from outer scope (line 422) (redefined-outer-name)
  W:376, 4: Redefining name 'parser' from outer scope (line 414) (redefined-outer-name)
  C:414, 4: Invalid constant name "parser" (invalid-name)
  C:415, 5: Invalid constant name "options" (invalid-name)
  C:415,14: Invalid constant name "args" (invalid-name)
  C:421, 4: Invalid constant name "url" (invalid-name)
  C:422, 4: Invalid constant name "manifest" (invalid-name)
  C:422,14: Invalid constant name "url" (invalid-name)

6 years fix some pep8 issue
Antonio Ospite [Fri, 15 Jan 2016 09:06:34 +0000 (10:06 +0100)] fix some pep8 issue E402 module level import not at top of file E402 module level import not at top of file E402 module level import not at top of file E402 module level import not at top of file E402 module level import not at top of file E402 module level import not at top of file E402 module level import not at top of file E402 module level import not at top of file E402 module level import not at top of file E265 block comment should start with '# ' E302 expected 2 blank lines, found 1 E302 expected 2 blank lines, found 1 E128 continuation line under-indented for visual indent E501 line too long (84 > 79 characters) E128 continuation line under-indented for visual indent E711 comparison to None should be 'if cond is None:' E127 continuation line over-indented for visual indent E128 continuation line under-indented for visual indent E128 continuation line under-indented for visual indent E128 continuation line under-indented for visual indent E128 continuation line under-indented for visual indent E711 comparison to None should be 'if cond is None:' E128 continuation line under-indented for visual indent E128 continuation line under-indented for visual indent E128 continuation line under-indented for visual indent E128 continuation line under-indented for visual indent E265 block comment should start with '# ' E128 continuation line under-indented for visual indent E128 continuation line under-indented for visual indent E128 continuation line under-indented for visual indent E128 continuation line under-indented for visual indent E128 continuation line under-indented for visual indent E128 continuation line under-indented for visual indent E128 continuation line under-indented for visual indent E128 continuation line under-indented for visual indent E128 continuation line under-indented for visual indent

6 years if there is a Clip element use its manifest
Antonio Ospite [Thu, 14 Jan 2016 17:13:05 +0000 (18:13 +0100)] if there is a Clip element use its manifest

6 years use more specific exception when looking for the Clip element
Antonio Ospite [Thu, 14 Jan 2016 17:12:18 +0000 (18:12 +0100)] use more specific exception when looking for the Clip element

6 years factor out a download_file() function
Antonio Ospite [Thu, 14 Jan 2016 17:11:39 +0000 (18:11 +0100)] factor out a download_file() function

6 years agoDifferentiate better between url, manifest_url and base_url
Antonio Ospite [Tue, 4 Mar 2014 11:26:47 +0000 (12:26 +0100)]
Differentiate better between url, manifest_url and base_url

8 years agoPrint more details when downloading a chunk fails
Antonio Ospite [Tue, 4 Mar 2014 11:24:32 +0000 (12:24 +0100)]
Print more details when downloading a chunk fails

8 years agoSimplify get_manifest() signature
Antonio Ospite [Sat, 19 Oct 2013 10:20:22 +0000 (12:20 +0200)]
Simplify get_manifest() signature

The manifest_file argument is never used, downloading to 'Manifest' is
just fine.

10 years agosmooth-dl: factor out some common code
Antonio Ospite [Fri, 23 Mar 2012 15:32:01 +0000 (16:32 +0100)]
smooth-dl: factor out some common code

get_chunk_quality_string() and get_chunk_name_string() abstract some
code used in multiple places.

10 years agosmooth-dl: handle CustomAttributes in stream quality
Antonio Ospite [Fri, 23 Mar 2012 13:44:16 +0000 (14:44 +0100)]
smooth-dl: handle CustomAttributes in stream quality

Some manifest files can have CustomAttributes elements in the
QualityLevel settings, handle these. For instance on RaiReplay streams
there is a systemLanguage attribute to tell what language the audio
stream is in.

10 years agosmooth-dl: fix a FutureWarning from python 2.7
Antonio Ospite [Fri, 23 Mar 2012 13:42:27 +0000 (14:42 +0100)]
smooth-dl: fix a FutureWarning from python 2.7

./ FutureWarning: This search is broken in 1.3 and earlier, and will be fixed in a future version.  If you rely on the current behaviour, change it to './/StreamIndex'

10 years agoREADME: mention the "Direct Download Links" Greasemonkey script
Antonio Ospite [Fri, 23 Mar 2012 13:38:48 +0000 (14:38 +0100)]
README: mention the "Direct Download Links" Greasemonkey script

Using "Direct Download Links" is the easiest way to retrieve the
manifest file.

11 years agoInitial version.
Antonio Ospite [Mon, 29 Nov 2010 13:24:20 +0000 (14:24 +0100)]
Initial version.

Signed-off-by: Antonio Ospite <>