Trackers
=================================================================
Bugs:
    browse: https://gna.org/bugs/?group=clive
    submit: https://gna.org/bugs/?func=additem&group=clive

Feedback:
    browse: https://gna.org/support/?group=clive
    submit: https://gna.org/support/?func=additem&group=clive


Version 0.4.11                                       [2008-04-24]
=================================================================
+new !fix ~change -remove | focus: Major bugfixes

+ --with-PACKAGE[=yes|no] (sr #1986)
    See the INSTALL file for more details.

~ Prerequisite: newt (snack) module
    The module is now expected to be found.

! Youtube: "video removed" (bug #11564) [blocker]
    Affected versions: clive < 0.4.11

! Unportable test(1) construct (bug #11552) [0.4.10]
    configure used previously the unportable bash "==" comparison
    operator for test(1) which is not supported by most other shells.


Version 0.4.10                                       [2008-04-21]
=================================================================
+new !fix ~change -remove | focus: Major bugfixes

+ newt library
    The library, which is written in C and depends on the libslang, is now
    part of the clive distribution. For more details, see the README file.

+ configure: --with-newt[=yes/no] (default:yes)
    If disabled:
        - python newt module will not be built
        - The --rss feature will be disabled

+ Prerequisite: libslang >= 2.0
    The newt library depends on this library.

+ Google Video: mp4 support
    clive will now attempt to download mp4 format from the host by
    default. --low-quality option can be used to override this. Falls
    back to flv if the mp4 link is not found.

    Example:
        mp4: Video: h264, yuv420p, 320x240, 29.97 fps(r)
        mp4: Audio: mpeg4aac, 48000 Hz, stereo

        flv: Video: flv, yuv420p, 320x240, 29.75 fps(r)
        flv: Audio: mp3, 22050 Hz, mono, 64 kb/s

+ Google Video: Partial support for continuing transfers
    Continuing partially downloaded files is now possible for the mp4 transfers
    introduced in this release.

    As with Youtube/FLV, continuing GoogleVideo/FLV files still fails.

~ Program start options stdout
    clive now prints out the bundled newt version (if any).

! Cache: --low-quality
    Caching should now work properly with the --low-quality option. If the
    cache entry was previously recorded using different video quality, the
    video page is re-visited and the cache is updated.

    A new column 'cache_lowq' was added to the 'cache' sqlite table.
    Should the upgrade from a previous version fail, remove the existing
    ~/.clive/cache file.

! GoogleVideo: Extraction fails (bug #11523) [blocker]
    Affected versions: clive < 0.4.10

! Various typos
    Mostly in the manual page.

- Prerequisite: python-newt module
    The module is now part of the distribution.


Version 0.4.9                                        [2008-04-09]
=================================================================
+new !fix ~change -remove | focus: major feature improvements

+ RSS/Atom parser (req. python newt module >= 0.51)
    Designed to be used with video host feeds. Parses and displays
    found videos available for extraction. If the required newt module
    is not found, the feature is disabled.
    
    Note that the python feedparser module is now part of the clive
    distribution, for more details, see the README file.

    Option:
        --rss (config: url_feed)

    When the --rss option is used, the URLs are treated as RSS/Atom feed URLs,
    for example:
        % clive --rss http://youtube.com/rss/global/recently_featured.rss

    Downstreamers: Python newt module is a new prerequisite. Note that the
    program still runs without it, only the --rss feature is disabled.

    FreeBSD: the newt library needs to be built with WITH_PYTHON,
    for example:
        % cd /usr/ports/devel/newt
        % make WITH_PYTHON=yes install clean

    Ubuntu: https://bugs.launchpad.net/ubuntu/+source/newt/+bug/110880

+ Dailymotion: Log-in support (sr #1834)
    Options:
        --dmotion-user=USERNAME (config: dmotion_id)
        --dmotion-pass=PASSWORD (config: dmotion_password)

+ Metacafe: Family filter off (sr #1956)
    The family filter is disabled for all extractions.

+ Youtube: Log-in support (sr #1953)
    Resurrected the log-in support that was previously available in 0.2.x
    but removed in 0.3.0 due to the complete program overhaul.

    Options:
        --youtube-user=USERNAME (config: youtube_id)
        --youtube-pass=PASSWORD (config: youtube_password)

! ~/.clive/config; improved parsing
    The parser is now more resistant to invalid values. clive will now also
    exit if an error occurs while parsing.

! ~/.clive/config; output_if_file_exists
    Accepts "RENAME" as it should have.

! Console; q_r_paste command
    Crash at: "UnboundLocalError: local variable 'cmd' referenced before assignment"

~ --write-conf; increased verbosity
    clive is now more verbose about found 3rd party programs.

~ --write-conf; sort commands
    The written commands are now sorted alphabetically.


Version 0.4.8                                        [2008-03-31]
=================================================================
+new !fix ~change -remove | focus: minor bugfixes

+ Youtube: HTTP/415 No media fallback
    Extract low quality (flv) video if better quality (mp4) is not available.

! Youtube: Partial support for continuing transfers
    It is now be possible to continue partial downloads as long as they are
    high-quality (mp4) videos.

    Note that this fails utterly for the flv videos. It appears urlgrabber
    appends a complete file at the end of the existing file when the host
    refuses to continue transfer. Instead of bloating the code with the
    conditions, continuing the youtube flv file transfers remains disabled.

! Dailymotion: improved media support
    clive no more assumes 512x384 is the highest available quality. The
    video page is now parsed for best available quality which clive extracts
    unless the --low-quality option is being used. It should be noted that
    most videos appear to have only the low-quality (flv) video available.

    No media warning will be displayed if high quality video is not found
    and the low quality video is extracted instead.

! Transfer rate calculations
    File length offset is now used properly with files that are being
    overwritten. This fixes the only-progress-percentage odditity is
    being displayed.

! Youtube: New error messages
    "error: country restriction/censorship"
    "error: private video"

! --check-update,-u
    Crash at: "TypeError: __init__() takes exactly 2 arguments (1 given)"

~ Reduce progress stdout flickering (sr #1944)
    Progress is now rendered in one second intervals. clive will now also
    display average transfer rate and total time elapsed when the transfer
    completes.

~ Clean up
    clive(1), INSTALL etc.


Version 0.4.7                                        [2008-03-17]
=================================================================
+new !fix ~change -remove | focus: major feature enhancements

+ GNU Autotools support
    See the INSTALL file for the updated installation details.

+ urlgrabber integration
    The urlgrabber module is now part of the source code distribution.
    For more info, please read the README file.

    Downstream maintainers: urlgrabber module is no longer a prerequisite

+ Cache
    If caching is enabled, clive will collect data about visited URLs
    to a sqlite3 database file (~/.clive/cache). Note that cache is only
    available for Python >= 2.5. Also, depending on the system, the sqlite3
    may not be installed with Python by default, e.g. on FreeBSD you need
    to install it separately (databases/py-sqlite3).

    Added also --no-cache and enable_cache. Caching is enabled by default.

+ Youtube: new default format
    clive now defaults to extract the better quality (mp4) videos from Youtube.
    The default behaviour can be overridden with the --low-quality option.

+ "Paste" option displayed at program start
    The state for "paste from xclip" is now displayed when the program starts.

! Same output filename in URL batch
    clive did not previously check the URLs in current batch for same output
    filename. For example:

        http://video.google.com/videoplay?docid=-4505462782975458603
        http://video.google.ca/videoplay?docid=-4505462782975458603

    Both URLs point to the same video, note the different TLD. If they were
    fed to clive in same URL batch the program accepted them without any 
    scrutiny. This resulted clive to waste bandwidth downloading the same
    file twice and overwriting the previously extracted video file.

    clive now generates (--exist=rename) a new output filename for the last 
    URL.

! Dailymotion support
    clive will now attempt to extract the higher resolution vide (mp4) _only_
    if it is available. This was causing HTTP/404 errors for some dmotion URLs
    with the previous release.

    The new option --low-quality overrides this default behaviour.

! Status/progress stdout line breaking on some system configurations
    This was caused by improper use of '\b' which would cause the lines
    to break on some terminal emulation settings.

! Calculations for resumed transfers (patch #990)
    The transfer rate calculations should no longer go berzerk for
    resumed transfers.

    "The problem is that when urlgrabber calls update(), the 'read'
    parameter is the current size of the file. When you resume, you 
    need to discard the offset from the previous download or else
    the calculations will be off." -- zythmer

~ clive(1)
    The manual page was rewritten.

~ Accept-encoding is now always set to gzip
    Removed the rather useless --no-gzip option from wasting space.
    Note that compression is only used if the host supports it.

~ Configuration file format
    The configuration file format has undergone several iterations of
    changes over the last 12 months and this release introduces yet another
    format. Wait for it. This one's final. For a comparison:

    Then: {.., 'verbose':1, ..}
     Now: enable_verbose="YES"

    To get started, you can generate a "template" configuration file
    with:

        % clive --write-conf

    The created file contains comments and all supported commands. clive
    will also attempt to autodetect the 3rd party programs such as ffmpeg
    and set the paths to these programs with recommended options.

~ File name changes in ~/.clive
    config.py -> config
    last.log -> recall
    userdef.py -> custom.py

    Note that since history is no longer used, the ~/.clive/history.log is
    now obsolete and can be removed if it's still around.

~ Option --write-conf
    Previously known as --conf-write. Writes the config file with default
    program values. clive will now attempt to autodetect vlc, ffmpeg and
    xclip.

~ Option --emit
    Renamed to "--emit-csv". Standard output format was also changed.

    From:
        video: "extraction-url" "filename" "length"\n
    To:
        OK: "url","extraction-url","filename","length"\n
        FAILED: "url","error-message"\n

    Should be now more parsing-friendly.

~ Options changed
    Much of the options were either renamed, merged, removed or otherwise
    modified. Some new short options were added also.

~ Renamed --simulate
    Renamed --simulate,-s to --no-extract,-n.

~ Tweaked warnings
    Some of the warnings were rewritten.

~ Stdout overhaul
    Much of the stdout messages were changed, e.g. "status:" and similar
    were replaced with lines that make better use of the line space.

~ Options displayed at program start
    Renamed "throttle" to "rate". Renamed "exists" to "exist".

~ sys.platform instead of platform.uname
	Platform string is now constructed using the platform module.

- Logging features
    More or less replaced by the new "cache" and "recall" features.
    See also "File name changes" above.

- GUI features: --configure, --history
    Rather than transforming clive into a CLI-GUI hybrid, I've decided
    to remove the GUI elements. The code to these short-lived features
    could still be reused for a GUI-only clive configruation tool later
    if there's any demand for it.

    Downstream maintainers: Tkinter is no longer used by clive.

- Mswindows support
    Anyone familiar with the woe32 specific non-standard approach to
    everything can probably relate to this, and even if python hides
    much of the mswindows nonsense, I've decided not to bother myself
    with it anymore. So instead of bloating the code base with a set
    of conditions and exceptions for woe32, I've, hereby, removed
    all of the ms-platform specific nonsense from the project.

    Come to the unix side.

- distutils support (setup.py)
    Starting from this release, clive uses GNU Autotools.

- stage6 support
    Shut down service effective February 28, 2008
    (http://www.stage6.com/blog/107/).


Version 0.4.6                                        [2008-02-20]
=================================================================
Focus: Bugfixes

New: Added empty string checks for various options
	Read also the notes about "Various crashes with empty strings".

Chg: Cleaned up clive/opts.py --play,--player,--ffmpeg,--re-encode code
	Option checking is now longer but should be less tedious to follow.
	Corrected also a minor logic error within the checks.

Fix: Various crashes with empty strings read from ~/.clive/config.py
	clive was unable to handle option strings that were empty,
	for example if config.py defined 'output_mask' as '',
	the program would crash. This bug was easy to reproduce
	with the --conf-write option which sets many of the strings
	to ''.

Fix: --player, --ffmpeg options not used warnings
	Nag no more. The warnings show up only if --play,--re-encode
	are being used without --player,--ffmpeg.


Version 0.4.5                                        [2008-02-15]
=================================================================
Focus: Bugfixes

Fix: AttributeError: Nomad instance has no attribute '_log_clear' (>= 0.4.4)
	Calling clive with the `--log-clear' caused the program
	to crash.

Fix: incorrect queue total mb (>= 0.4.4)
	A bug resulted the program to report incorrect total MB
	for a download queue.

Fix: dmotion; extraction failure (< 0.4.5)
	Due to the changes made to the website, clive was unable to
	locate the video extraction URL from the page HTML resulting
	to the "extraction url not found" error.

Fix: mcafe; stdout garbage due to 18+ verification (>= 0.4.2)
	This fix pipes down the stdout gibberish produced due to
	the age verification click fest on a video page.

Chg: exit if `--log-recall' fails
	The program now exits if the last.log file does not exist.

Chg: dmotion; extract mp4/512x384 instead of flv/320x240
	In favor for better video quality.


Version 0.4.4                                        [2008-02-01]
=================================================================
Focus: Major feature enhancements

New: --configure; complete GUI overhaul
	Going for more compact layout.

New: --conf-write
	Writes ~/.clive/config.py with default values. Useful
	for those who want to edit the file manually as the created
	file contains a complete list of supported configuration
	variables/keys.

New: --simulate, -s
	Simulate only, do not extract any videos.

New: --history
	Added the 'Last Batch' group for ~/.clive/last.log with
	'Recall' and 'Clear' functions.

New: lastfm/youtube support
	"Last.fm recently added a video feature which appears to be a
	simple wrapping of YouTube videos, and the YouTube id appears
	in the Last.fm URL. The attached patch finds it from URLs like
	http://www.last.fm/music/Sylver/+videos/+1-fVD2TfSGkaw"
		-- Seth W. (Jzalae) Klein
	
	See also: https://gna.org/support/index.php?1873

Fix: --history; bind wm_delete_window
	Hitting the corner X now prompts for saving the changes (if any).

Chg: renamed console command "q_r_last" to "q_r_recall"

Chg: tweaked console help strings

Chg: renamed some of the config.py keys/variables
	- from_clipb -> paste
	- last -> log_recall
	- clear_logs -> log_clear

Chg: moved scripts/clive:Clive class to clive/main.py
	scripts/clive contains now only the program entry point
	which creates a Clive instance.

Chg: removed the avi/mpg restrictions
	It is now possible set both `--play' and `--re-encode' options
	to anything. clive does not check those options for 'src', 'mpg'
	or 'avi' anymore. For example:

		% clive --ffmpeg="ffmpeg -y -i %i %o" --re-encode=mp4 URL

	The responsiblity of making sure proper format (file extension)
	is being used lies now solely on the users' shoulders. So as long
	as ffmpeg supports the extension, it can be used with clive.

Chg: long and short option name changes
	Some were renamed, others added. Help strings were updated.

Chg: man/clive.1.gz -> man/clive.1
	setup.py still produces clive.1.gz for bdist_rpm compatibility.
	The reason for the change was to remove the only remaining binary
	file from the SVN repository.

Chg: man/clive.1 cleanup
	clive(1) should now be less tedious to read.

Chg: removed "checking file length..." stdout message
	Less chatter.


Version 0.4.3                                        [2008-01-25]
=================================================================
Focus: major bugfix, minor feat. enhancement

New: --output-file, -O
Fix: youtube support after changes made to the website


Version 0.4.2                                        [2008-01-20]
=================================================================
Focus: minor feature enhancements

New: metacafe support
New: --configure; 'disable mask'
New: --configure; output group; added info labels
Fix: crashing at displaying a CliveError (incorrect member variable name)
Chg: --configure; minor tweaks
Chg: use os.environ for setting PYTHONPATH in run.py
Chg: --configure; do not write 'last'


Version 0.4.1                                        [2008-01-15]
=================================================================
Focus: minor bugfixes

New: doxygen comments + clive.doxygen file
New: user-defined functions; --output-mask, see clive(1) for more info
New: --disable-mask
Fix: console; set; do not list hidden variables
Fix: title parsing; trim leading and trailing whitespace
Fix: various typos
Fix: --configure; append '\n' at the EOF
Fix: --configure; do not write hidden variables (e.g. '_tkinter_avail')
Chg: --configure, --history; GUI tweaks; std button width, new msgboxes
Chg: --clear-logs; exit process when done


Version 0.4.0                                        [2007-12-15]
=================================================================
Focus: minor bugfixes

Fix: history GUI; reset text entry fields on delete/clear
Fix: import tkinter only if available (bug #10488)
Chg: minor tweaks in configure GUI


Version 0.3.5 (nomad)                                [2007-12-07]
=================================================================
Focus: bugfixes

New: short options for --disable-*
New: --configure; 'clear' button
New: --check-updates; mswin; prompt for mswin binaries download
Chg: be more discreet about program options at startup
Fix: set initial --configure, --history toplevel positions
Fix: check if host is supported _before_ attempting to get & parse page html
Fix: domain; stage6.divx.com -> stage6.com (bug #10425)


Version 0.3.4 (nomad)                                   [2007-12]
=================================================================
Focus: Feature enhancements, minor tweaks and bugfixes

New: ~/.clive/history.log; stores successfully visited and parsed URLs
New: --history; gui (tkinter) for browsing history log
New: --configure; gui (tkinter) for configuring clive (~/.clive/config.py)
Fix: exception handling; traceback is your friend; fixes also the 'error: o'
Fix: --emit; use basename for filename instead of $prefix/filename
Fix: --quiet; force stdout for --emit
Fix: --emit; ignore the resume/overwrite/rename behaviour altogether
Chg: added and cleaned up the startup options display
Chg: replaced 'note:' stdout messages with 'status:' etc.
Chg: save ~/.clive/last.log only if queue > 0 and/or skipped > 0
Chg: urlgrabber errors are now displayed with URLs
Chg: config.py; removed support for the `last' variable

-----------------------------------------------------------------
NOTE: PATCH SUBMISSIONS
-----------------------------------------------------------------

As of the release 0.3.3, the `clive' project, will only merge those
user submitted patches into the development trunk that are:

  a) Bugfixes
  b) Feature enhancements
    b.1) If the patch adds support for a website, the website must:
      b.1.1) be free to use (with or without registration)
      b.1.2) allow users to submit new video content
      b.1.3) qualify otherwise as a "host for user-generated videos"

Those patches that go clearly against the general architecture of
`clive' and/or the notes above, may remain available in the patch
tracking system. They will not be however merged into the trunk
development code.

If a user chooses to apply any of the user submitted patches
available in the patch tracking system, he/she should bear in
mind that the author of `clive' will not provide support for
an unofficial, or otherwise modified, version of `clive'.
One should contact the original submitter of the patch
instead.


Version 0.3.3 (nomad)                                [2007-11-15]
=================================================================
Focus: Severe bugfix

Fix: startup error; ~/.clive does not exist (bug #10332) [!dottedmag]
Chg: .iss; clive.1.html -> clive.1.txt


Version 0.3.2 (nomad)                                [2007-11-15]
=================================================================
Focus: Minor tweaks, new features

New: --last, --disable-log, --clear-logs
New: console commands `l_clr', `q_r_last'
New: accept gv embedded urls (sr #1804) [!sk]
New: --check-updates
Fix: improved stage6 title parsing
Chg: renamed console variable `accept_gzip' to `gzip'
Chg: renamed many of the console commands
Chg: user-agent defaults now to a random string
Chg: tweaked help strings
Chg: --filename-chars -> --output-mask
Chg: --filename-format -> --output-fmt
Chg: --from-clipboard -> --from-clipb
Chg: config.py and console; variable names changed accordingly
Chg: fixed various typos in clive(1)


Version 0.3.1 (nomad)                                   [2007-11]
=================================================================
Focus: Minor bugfixes, tweaks

New: 'clear' console command
New: accept multiple urls on command line
New: guba (free) support
New: stage6 support
New: mswindows binary setup (mswin/setup_clive.iss)
Fix: verify prefix path
Fix: random output filename; insert prefix dash only if len(title) > 0
Chg: cleaned up stdout messages
Chg: improved manpage documentation


Version 0.3.0 (nomad)                                   [2007-10]
=================================================================
Focus: Complete rewrite/cleanup and new features

Be sure to uninstall any previous versions first.

NOTE: Some old features have been removed. Some may re-appear in future
releases. The noticeable removals are listed below.

New: Complete CLI overhaul
New: urlgrabber module requirement
New: Transfer rate throttle, `--throttle' (1)
New: Auto-resume file transfers for dmotion (2)
New: Clipboard support (unix/x: xclip, mswin: win32clipboard)
New: ~/.clive/config.py support (3)
New: Console interface (4)
Chg: New `--emit' output format; see `--help'
Chg: Removed ~/.cliverc support
Chg: Removed newt module requirement and the newt UI
Chg: Removed <embed> support
Chg: Removed ytube log-in support
Chg: Removed reading urls from files (5)

(1) = Limits transfer rate to the specified ~KB/s (default=0, unlimited).

(2) = ytube and vgoogle do not support resumed file transfers and only
render the existing file useless. clive enforces --rename for ytube
and vgoogle.

  NOTE: dmotion; --overwrite and --rename are ignored if
  local_file_len < remote_file_len. The fail-safe switches
  to use `--overwrite' if the server forbids (HTTP/403) the
  request.

  NOTE: vgoogle video extraction urls provide 'begin' and 'len' parameters
  which, in theory at least, could be utilized to allow resuming. Neither
  appear to take the values as bytes.

(3) = See clive(1) manual page for more details.

(4) = Entered if clive is started without the URL parameter. Type "help"
while in stdin read mode to see the complete list of the supported console
commands.

(5) = Try: `% clive < list-of-urls.file`.


Version 0.2.1                                           [2007-09]
=================================================================
focus: minor feature enchancements and bug fixes

fix: dmotion extraction (bug #9971) [!legatvs]
fix: broken vgoogle support (bug #9964) [!legatvs]
fix: removed use of hardcoded video.google.com domain (bug #9239) [!grok]
fix: broken youtube support (bug #9873) [!alfie]
chg: newt: main menu 'Continue' -> 'OK' (sr #1598) [!grok]
chg: prompt only if number of videos exceed 1 (sr #1600) [!asjo]
chg: check `--encoder=PATH' at start (sr #1601) [!asjo]

NOTE: Bug #110880 in newt (Ubuntu): python-newt scripts crash on exit
      (https://bugs.launchpad.net/ubuntu/+source/newt/+bug/110880)

Version 0.2.0                                      [late 2007-04]
=================================================================
focus: major feature enchancements

new: support for dailymotion.com (excl. embedded videos and login) (1)
new: `--proxy-user', `--proxy-pass', `--no-proxy' (2)
new: `--no-youtube-login'
new: short option for `--play-format'
new: `--no-encode', `--no-accept', `--no-play', `--no-skip'
new: `--filename-chars' (3)
new: `--filename-format' (4)
chg: limit filename to 64 chars (excl. extension)
chg: renamed `--output' as `--output-file'
chg: program defaults to http_proxy env. variable
chg: removed `--save' (5)
chg: newt ui shows menu elements dynamically
chg: less cryptic proxy info at startup
chg: renamed `--nonewt' as `--no-newt'
chg: renamed `--nostrip' as `--no-strip'
chg: removed `--no-strip' short option `-n'
chg: renamed `--report-bugs' as `--bugs'
chg: removed `--login'
chg: added `--youtube-user' and `--youtube-user'
chg: renamed `--log-info' as `--youtube-status'
chg: renamed `--logout' as `--youtube-logout'
chg: youtube.com login is now done using `--youtube-user' and `--youtube-user'
chg: `--play-format=FORMAT' now sets both `--play' and `--FORMAT' (6)
chg: renamed `--yes,-y' as `--accept,-A'
chg: renamed `-k' as `-s' (`--skip')
fix: a potential div by 0 in clive/cli.py
fix: `--emit', display ignored urls w/o prompting if scan found 0 videos
fix: use newt ui if scan found 0 videos (and if newt is enabled)
fix: display video info if newt is not used and `--yes' was not used
fix: `--quiet', add a newline after scan
fix: `--emit' acknowledges `--output-file'

(1) login support may be added later.
    embedded video support is unlikely to be added.

(2) Proxy authentication support is experimental and req. testing.
    Please report any bugs. The username and password are encoded
    using the 'basic' authentication scheme.

    NOTE: Proxy is on by default if the appropriate env. variable
          is defined.

(3) `--filename-chars' (cliverc: filename_chars = STRING)

    Sets the accepted characters that are used from the video page
    title. clive uses regular expression (regexp) to strip the unneeded
    characters from the title. The default STRING is 'A-Za-z0-9'
    which translates roughly to 'accept all A-Z, a-z and 0-9 characters'.

    So for example, if you wanted to accept whitespaces and commas
    as well, you could use:

      # clive --filename-chars='A-Za-z0-9 ,' URL

    NOTE: Some punctuations may not be used for filenames

    NOTE: `--output-file' overrides this option

(4) `--filename-format' (cliverc: filename_format = STRING)

    Specifies the format of a video filename. This is done
    using string identifiers such as %t or %h that are simply
    replaced by clive with the appropriate data. The default
    STRING is '%t.%e'.

    Accepted string identifiers:

      %t = title
      %i = video id
      %h = host (e.g. 'youtube' or 'vgoogle')
      %e = file extension (e.g. 'flv' or 'avi')

    Examples:

      # clive --filename-format='%t (%i) [%h].%e' URL

    NOTE: The output of `--emit' will change accordingly and `--output-file'
          overrides this option.

(5) The location of cliverc is ~/.cliverc. The file is not created
    or installed by default.

    use_newt = on/off
      Enable/disable newt UI, enabled by default if newt is installed.
      `--no-newt' disables it'.

    user_agent = string
      Use string as user-agent for HTTP connections, the same as `--agent'

    prefix = string
      Save extracted videos to prefix, the same as `--prefix'

    http_proxy = string
      Use string as HTTP proxy, instead of the one specified in env.
      You can disable the use of HTTP proxy with `--no-proxy'.

    proxy_user = string
      Set PROXY authentication user name to string, the same as `--proxy-user'

    proxy_pass = string
      Set PROXY authentication password to string, the same as `--proxy-pass'

    youtube_user = string
      Set youtube.com user name to string, the same as `--youtube-user'

    youtube_pass = string
      Set youtube.com password to string, the same as `--youtube-pass'

      NOTE: Both youtube_user and youtube_pass must be used in
            order to log into youtube.com. If they are used,
            clive checks the login status at startup and logs in
            if required.

            You can bypass the login procedure with `--youtube-no-login'
            while the above two variables are being used.

    player = string
      Set player to string, the same as `--player'

      Example: player = vlc --fullscreen %%i

      NOTE: %%i is not a typo, be sure to use %% in cliverc

    encoder = string
      Set encoder to string, the same as `--encoder'

      Example: encoder = ffmpeg -y -b 1200 -ab 128 -i %%i %%o

      NOTE: Use %% instead of % in cliverc
            Be sure to use -y with ffmpeg, this tells
            ffmpeg to overwrite the existing output file
            without a prompt.

    always_accept = on/off
      Enable/disable extraction without prompting, the same as `--accept'
      `--no-accept' disables it

    always_play = on/off
      Enable/disable playing extracted video, the same as `--play'
      `--no-play' disables it

    play_format = string
      Set default play format as string, like `--play-format=FORMAT'
      `--no-play' and `--no-encode' disable it

      NOTE: Sets (and overrides) `--play' and `--FORMAT'

    encode_format = string(s)
      Re-encode videos to formats defined by the string, like `--mpeg/avi/flv'
      `--no-encode' disables it

      It is possible to pass more than one format, e.g.:
        encode_format = mpeg,avi

    always_skip = on/off
      Enable/disable skipping already extracted videos, the same as `--skip'
      `--no-skip' disables it

    always_strip = on/off
      Enable/disable stripping stdout messages, `--no-strip' disables it
      `--no-strip' disables it.

    filename_chars = STRING
      Set STRING as the accepted filename (title) characters
			(default: A-Za-z0-9)

    filename_format = STRING
      Set STRING as the filename format (default: %t.%e)

      NOTE: Use %% instead of %, e.g. %%t

  NOTES:

  (1) All previously existing options have been renamed and
      a few new ones have been added. Be sure to edit any
      previously existing cliverc file accordingly.

  (2) for on/off you may use also 0/1, true/false and yes/no

  (3) Example cliverc:

      [clive]
      player = vlc --fullscreen %%i
      encoder = /usr/bin/ffmpeg -y -b 1200 -ab 128 -i %%i %%o
      http_proxy = http://proxy:80
      youtube_user = myusername
      youtube_pass = myuserpass
      always_accept = yes
      encode_format = mpeg
      always_play = on
      filename_chars = A-Za-z0-9 ,!?
      filename_format = %%t (%%i) [%%h].%%e

(6) Before:
      # clive --play --mpeg --play-format=mpeg

    This does the same thing now:
      # clive --play-format=mpeg

Version 0.1.9                                      [late 2007-03]
=================================================================
focus: minor feature enchancements

new: --output=FILE, write all extracted videos to FILE (1)
new: accepts extraction URLs (2)
new: login to youtube.com (experimental) (3)
chg: increased --emit verbosity, new output format (4)
chg: stdout/stderr lines are formatted slightly differently
chg: improved pipe support (5)
chg: --quiet shows scan messages
chg: --emit lists ignored urls with reasons
chg: use --nostrip if --emit is being used
fix: display ignored urls if failed to find any videos

(1) --output=FILE works best for single video extractions

(2) URLs. Briefly.

      * Video page URL
        - e.g. http://youtube.com/watch?v=6IPN30Lzv7w

      * Video extraction URL
        - e.g. http://www.youtube.com/get_video?video_id= (...)
        - used to download the actual video file from the website
        - clive can list these URLs when --emit is used

        NOTE: When video extraction URLs are being used, be sure to
              use --output=FILE with YouTube URLs, for example:

                # clive --output=video.flv (vid-ext-url)

    Both of the above URL types can be used with clive.

(3) Login to YouTube

		NOTE: Experimental, any feedback is highly valued

    Enables extracting videos that require logging in, including
    those that have been flagged as 'inpropriate content'.

      # clive --login=username:password

        Once logged in, any youtube.com extractions are 
        done as the user that has been logged in.

      # clive --logout

        Logout from youtube.com, removes the ~/.clivecookies file.

      # clive --loginfo

        Displays info from the ~/.clivecookies file.


    Functionality with some notes:

      1: youtube.com sets the 'LOGIN_INFO' cookie if login
         succeeds.

      2: clive sets 'is_adult' cookie without connecting
         to youtube.com. This eliminates the step that
         would normally require that the user hits the
         confirm button to accept any content that has been
         flagged as 'inappropriate'.

      3: Cookies are saved to ~/.clivecookies.

         The LOGIN_INFO cookie is valid for 10 years.

         youtube.com sets a selection of other cookies.

         If privacy is a concern, then avoid using --login.
         Many of these cookies are likely to be used to keep
         a track of the visitor's activities on the website.

      NOTE: Login is done over unencrypted HTTP transfers.
            Anyone intercepting the HTTP traffic could
            steal the login info.

(4) --emit is now more verbose, each extraction URL takes a line
    like before, but the URL is now followed by 'filename' and 'size'.
    Each found URL line begins with '(f) : ', for example:

      (f) : http://... example.avi 8.0MB

    Each element (URL, filename, size) is separated by a single whitespace.

    Ignored URLs are printed after the found ones, each ignored URL
    line begins with '(e) : ' and is followed by the URL and the reason,
    for example:

      (e) : http://... reason

    NOTE: 'reason' may have whitespaces, for example:

      (e) : http://... terminated (reason: age-verification)

    NOTE: --nostrip is now used by default if --emit is being used

(5) If an URL or a file is not specified on command line, clive will
    read stdin for input. This allows pipes to be used properly
    with clive, e.g.:

      # cat urls.txt | clive
      # clive < urls.txt

Version 0.1.8                                       [mid 2007-03]
=================================================================
focus: minor fixes and feature enchancements

new: --emit a listing of video extraction urls to stdout [sr #1505], notes(1)
new: short option (-n) for --nostrip
chg: catch urllib2 exceptions inside the url checking loop
fix: newt < 0.52 esc key binding incompatibility [#8697] (Nicola Vitale)
fix: transfer timer is now reset correctly
fix: batch loading; list order is no longer lost

(1) For a no nonsense listing, try:

      # clive -enq URL|FILE

    NOTE: -e is a short option for --emit

(2) New maintainers:

      FreeBSD: Nicola Vitale (http://www.freshports.org/multimedia/clive)
      Debian: Mikhail Gusarov (http://packages.debian.org/clive)

Version 0.1.7                                     [early 2007-03]
=================================================================
focus: major feature enhancements, partial rewrite

new: all urls are now scanned for videos (incl. embedded) before extracting
new: exit with return code (non-zero=error)
new: use gzip encoding for http (page) requests, see notes(1)
new: short option strings
new: --prefix option
new: prompt to extract a video
new: 'video removed' detection (yt)
new: newt user interface, see notes(2)
new: --nonewt, disable newt ui
new: transfer rate + time left
new: --skip, skip already existing videos
chg: urllib -> urllib2
chg: page parsing should now use slightly less system resources
chg: --quiet extracts all videos without prompting
chg: --quiet no longer overwrites, existing files are skipped
chg: --quiet is now slightly more verbose
chg: removed --saveas, --extract-all, --simulate, obsoleted by scan
chg: removed --batch, obsoleted by new synopsis, see notes(3)
chg: renamed --proxy=env as --proxy=http_proxy for clarity
chg: replaced --ffmpeg by --encoder, see notes(4)
chg: overwrite prompt is now more verbose
chg: --encoder, --player are now more verbose of req. options
chg: --player uses similar formatting with --encoder, see notes(4)
chg: --play=FORMAT, where FORMAT can be mpeg/avi/flv, see notes(5)
chg: --proxy=None now disables the use of a proxy
fix: crash with --play, without path to a player
fix: batch parser no longer accepts empty lines

Important: This version changes the way --player=STRING is being used,
           please make sure to read the note(4) below

(1) Some proxies (e.g. privoxy) block gzip-encoding header in http reqs.
    gzip can give a good compression rate on HTML pages. Typically
    bandwidth required to retrieve a video page can cut down to 1/3.

(2) clive uses newt (snack module) for some parts of the new user
    interface (e.g. video selection). The newt user interface
    is used by default if the module is installed. Use --nonewt
    switch to disable it and use the 'classic' interface (prompt-for-
    video).

    Debian / *buntu: sudo apt-get install python-newt
    Redhat / Fedora: should have it installed
    Others: most Linux distros should have it installed

(3) URL argument can now be a file containing URL(s).
    This was done previously with the --batch=FILE parameter.

      e.g. # clive -myo urls.txt

    NOTE: clive no longer prompts for URL, instead it terminates
          with an error if an URL was not specified.

(4) --encoder="/usr/bin/ffmpeg -y -i %i %o"
    --encoder="/usr/bin/mencoder %i -ovc lavc -oac mp3lame -o %o"

    where %i = input file, %o = output file

    NOTE: --player is now used in the same manner, for example:

      --player="`which vlc` %i"

(5) --play defaults to the extracted video if FORMAT is not specified
    NOTE: FORMAT can only be used with --mpeg/avi/flv, so for example:

      --mpeg --play=mpeg

    would work, whereas:

      --mpeg --play=avi

    would not because the video was not re-encoded to avi format after
    extraction.

Version 0.1.6                                       [mid 2007-02]
=================================================================
new: zero-length video detection
fix: embedded videos: accept urls with a clear yt/gv fingerprint only
fix: accept long gv urls (note: be sure to quote them on cmdline)
fix: zero division in progress
fix: total bytes read calculation

Version 0.1.5 (Complete Rewrite)                  [early 2007-02]
=================================================================
new: embedded video extraction
new: --extract-all switch
new: batch mode
new: simulation mode
new: proxy (non-auth) support
new: user-agent default (Python-urllib/x.xx)
new: custom exception hook
fix: accept embedded video yt urls [#8390] (Adam Sjogren) 
fix: omit ctrl+c/ctrl+d backtrace [#8391] (Adam Sjogren / Klaus A. Seistrup)
fix: manual page installation (slackware et al)
chg: renamed --nowrap as --nostrip
chg: errors printed to stderr

Version 0.1.0 (Initial)                             [mid 2007-01]
=================================================================
