5 1. support spiegel.de (closes issue #32) [thanks to anon for data]
6 2. support golem.de (closes issue #33) [thanks to anon for data]
7 3. ~/.clive/config path support
9 * Improve: unicode support (related to issue #29)
10 1. cctv: no longer requires -C and -R options (obsoletes -R)
11 2. --cclass: now works as expected with unicode as well
12 * Improve: backwards compatibility with clive 2.0, 2.1
13 1. Allow --format=(mp4|hd|hq|3gp) (closes Debian bug #535957)
14 2. Restore ~/.config/clive/config path support (closes Debian bug #535483)
15 3. Add --upgrade-config (2.0/2.1 config to 2.2+ format)
17 1. --hosts prints now supported formats
18 2. pair --exec with --exec-run, the latter now triggers the former
20 3.1. ~/.clivelast -> ~/.cache/clive/last
21 3.2. ~/.clivecache -> ~/.cache/clive/cache
22 4. If HOME environment variable undefined, assume current workdir
23 5. --version: print locale etc.
25 1. --version: copyright years
26 2. file suffix for CCTV (.x-shockwave-flash -> .flv)
27 3. Remove "see examples" from pod markup (closes issue #30)
28 4. Prevent ".$suffix" output filenames
29 4.1. Use $id if !$title && %i was not defined in --filename-format
30 4.2. Related to issue #29
31 5. --no-proxy: really disable all proxy use (closes issue #25)
32 5.1. http_proxy setting was still used
33 6. Can't call method "filename" on unblessed reference at Exec.pm line 5x
34 6.1. e.g. clive URL --exec="ls;"
35 6.2. Closes Debian bug #535459
37 1. --recall, --recall-file -> --last, --last-file
38 2. CLIVE_HOME -> CLIVE_CACHE
40 1. -R, --raw (obsoleted by improved unicode support)
43 2.2. Obsoleted by --cache-file and --last-file
45 1. Add note about numeric suffix (closes issue #28)
46 2. Fix a number of typos, use better grammar
49 Developer-visible changes:
52 2. clive/Host/Spiegel.pm
57 * New prerequisite: Config::Tiny
58 1. Required by --upgrade-config
60 1. Extract VERSION from lib/clive/Config.pm
61 2. Add "use warnings/strct"
69 * Change: Google: --format=mp4/best
70 1. Default to flv if mp4 is not available
71 2. Fix --format=best support
73 Developer-visible changes:
74 * Add: t/$host.t: NO_INTERNET variable support (closes issue #24)
75 * Change: t/02youtube.t test link
77 * Remove: t/06lastfm.t
78 1. t/02youtube.t: includes the same test
85 * Add: support for Vimeo (closes issue #19)
86 * Add: return codes for each error case (closes issue #22)
87 * Fix: return code is always 0 (closes issue #20)
88 * Change: --hosts output now matches cclive output
90 Developer-visible changes:
91 * Change: Cctv, Dailymotion, Liveleak -> use clive::Utils::matchRegExps
101 This release is a major overhaul aimed to fix the previous design flaws
102 and clean up the codebase. Note that 2.2.0 breaks compatibility with
103 the earlier versions of clive.
105 Most users will not notice much differences after upgrading to 2.2.0
106 but those users who have used clive for anything more than "clive URL"
107 should read the changes carefully. The summary of changes section
108 includes more detailed changes that is recommended reading for all
109 users and maintainers.
111 2.2.0 changes the license from ISC to GPLv3. The license was last
112 changed in 2.1.0 to ISC but has now been reverted back to GPLv3 after
113 some further consideration.
115 Config::Tiny has been replaced with Getopt::ArgvFile. The latter had
116 some advantages over Config::Tiny that lead to the switch. For example,
117 instead of trying to memorize the (often confusing) config variable
118 names, users can now use command line options in the config file.
120 This also means that everytime a new feature is added to the program,
121 we are no longer required to modify the code responsible for parsing
122 the config file. Using Getopt::ArgvFile also required adding only one
123 line of code to the project whereas Config::Tiny required several.
125 cache no longer reads by default. This means that --cache-read option
126 must be invoked for clive to read previously stored video records
127 from the cache. The change was made after seeing how most users found
128 the reading from cache too confusing and frequently reported expired
129 link errors such as HTTP 403 as bugs even though the behaviour was
130 documented in the manual page. DAERTM?
132 --emit-csv now outputs very few details about the videos. Only those
133 fields that are known to be any use are printed out.
135 2.2.0 also removes a number of less used features that have lingered
136 in the project since the 1.x. Most of these features were never
137 requested and have only been burdening the program codebase since
140 Part time hackers and/or developers will notice that clive now follows
141 a new OO design -- as well as Perl5 allows it. While there are still
142 some considerations regarding the design and limitations that could not
143 quite be ported from C++ used in cclive, WYSIWYG.
145 Package/port maintainers will want to read the README file. The previously
146 used GNU Makefile is no longer used and clive installation now depends on
147 ExtUtils::MakeMaker instead.
152 User-visible changes:
156 2. Last changed in 2.1.0 (-> ISC)
158 * Slight improvements to program startup time
160 * Config file format changes (Config::Tiny -> Getopt::ArgvFile)
161 1. Command line options can now be used in config file
162 2. Breaks compatibility with previous versions
163 3. Cleaner and new format allows using cmdline options in configs
164 4. Format was last changed in 2.0.0
166 -----------------------------------------------
167 # Config::Tiny: clive 2.0 - 2.1
168 cat >> ~/.config/clive/config
170 proxy = "http://foo:1234"
172 savedir = "/home/user/videos"
174 # Getopt::ArgvFile: clive 2.2
176 --proxy="http://foo:1234"
177 --savedir="/home/user/videos"
178 -----------------------------------------------
180 * Fix: Redtube video title parsing
183 1. Cache is now passive (read:no, write:yes)
184 2. Add: --cache- option prefix
185 3. New option: --cache-read, --no-cache
186 5. Rename: misc. options (e.g. --show -> --cache-dump)
187 6. Record field changes
188 o Breaks compatibility with previous versions
189 7. New field delimiter '#'
193 1. ~/.config/clive/config -> ~/.cliverc
194 2. ~/.config/clive/recall -> ~/.clivelast
195 3. ~/.config/clive/cache -> ~/.clivecache
198 1. Add: --format=best support (closes issue #15 )
199 2. Rename: mp4 -> fmt18 (Youtube)
200 3. Rename: Dailymotion ID spark -> flv
203 1. cURL error handling
204 2. Google mp4 support
205 3. Do not strip link params (closes debian bug #530659)
206 4. --format=fmt6 (no longer supported by Youtube?)
207 5. Dailymotion ID parsing
215 6. --stop-after (closes issue #18)
217 * --emit-csv: changes to CSV fields (cleanup, print only the necessary fields)
219 page_link, video_link, filename, file_length_mb,
220 file_length_bytes, video_id, time_stamp, page_title,
221 initial_length, remaining_bytes
223 base_filename, file_length, video_link
227 2. --renew (now obsolete)
228 3. --youtube-user (broken since 2.1)
229 4. --youtube-pass (...)
241 1. Long options: aliases (e.g. --output_file | --output-file | --outputfile)
242 2. --filename-format: new specifiers, rename some of the old ones
243 3. --format: exit with an error if id is not recognized by clive
244 4. Rename: -r -> -l (--recall)
245 5. Many short options have been removed (or reused)
247 Developer-visible changes:
251 * Change: use a custom perltidyrc (closes issue #17)
252 - Thanks to Tong Sun <suntong001@gmail.com>
254 * Prerequisite changes
255 1. Written for Perl 5.10.0
256 o 5.8 probably OK although unverified
260 3. Removed prerequisites
265 4. Optional modules (no changes from 2.1.14)
269 * Change: use decode_utf8 returned html only if html is valid utf8
271 * Installation changes
272 1. Makefile.PL (ExtUtils::MakeMaker) [see README]
275 1. Makefile (obsoleted by Makefile.PL)
276 2. clive.pod (merged into bin/clive)
277 3. clive.1 (generated from bin/clive)
279 * Remove: binmode STDOUT, ":utf8"
281 * Remove: extra decode_utf8
287 User-visible changes:
288 * Add: support for youtube-nocookie.com (closes issue #12)
289 * Add: fmt35 format ID for Youtube [closes issue #10 (and #13)]
290 * Fix: liveleak id parsing
291 * Rename: --format IDs for Youtube
295 * Rename: --output-video -> --output-file
296 * Rename: output:file -> output:filename_format (config file)
297 * Remove: --overwrite option (use --output-file instead)
299 Developer-visible changes:
300 * Add: tests/ytube-nocookies.url
304 * 2.2.0 is under development, read more here:
305 http://code.google.com/p/clive/wiki/WhatsNew_2_2_0
311 Developer-visible changes:
312 * Change: use perltidy defaults for style
313 * Change: BerkeleyDB and File::Path modules are now optional
314 ** Cache features depend on these modules
315 * Moved opted_mods initilization to init_opted_mods (-> loop)
321 User-visible changes:
322 * Change: --connect-timeout, --connect-timeout-socks default -> 30s
323 * Fix: timeout after file transfer starts
324 * Fix: title parsing with custom character class (closes issue #8)
325 * Add: redtube support; thanks to anonprn2@gmail.com (closes issue #11)
326 * Fix: typo in --emit-xml --help string
332 User-visible changes:
333 * Change: --youtube-pass: prompt for password if left undefined
334 * Change: --filename-format: default -> "%t.%s"
335 * Fix: "Use of uninitialized value $opts{"ytpass"} ..."
338 ** --connect-timeout-socks
339 * Cleanup: manual page
341 Developer-visible changes:
342 * Rename: auth_youtube subroutine -> loginto_youtube
345 * Youtube login does not work (throw an error, patches welcome!)
351 NOTE: This release changes the clive status messages. This will likely
352 break compatibility with utilities that depend on these messages.
353 The changes were made to enable using abby (0.2.0+) as a front-end
356 User-visible changes:
357 * Add abby (front-end) compatibility
358 - Change output similar to cclive
359 - http://code.google.com/p/abby/
360 * Add Youtube HD support (--format=mp4_hd)
361 - Thanks to bf for the patch (via FreeBSD ports)
362 * Add tv.cctv.com support [issue #6]
363 - Thanks to suntong001 for data mining
365 - --limit-rate (config: [http]:limit_rate)
366 - --hosts (print supported hosts to stdout)
367 - --stderr (redirect all output to stderr instead of stdout)
368 * Improve file suffix parsing from content-type
369 - Rewrite the content-type handling block in query_video_length
370 - Use whatever is found after slash in the content-type string
371 - Use "flv" for exceptions (e.g. octet-*, x-flv, etc.)
372 * Replace dashes in video IDs with underscores before using them in fnames
373 * Change --version output
374 * Fix reading from stdin (closes Debian #522422)
375 - Assume reading from stdin only if queue and argv arrays are empty
376 * Fix exit with status code
377 - Exit 0 on success, and >0 if an error occurs
379 Developer-visible changes:
380 * Update examples/config with limit_rate
381 * Rename: configrc -> examples/config
382 * Replace the monstrous if-elsif-$host code block with a loop
388 User-visible changes:
389 * Fix GoogleVideo "id not found" handling
390 - Symptom: exit after "process page..." message
391 - Cause: no check for undefined id value
392 * Fix GoogleVideo support
393 - Symptom: see above fix
394 - Cause: HTML changes to the video pages
395 * Fix URI::Escape import for GoogleVideo redirects
396 - Symptom: crash with "Undefined subroutine &URI::Escape::uri_unescape"
397 - Cause: recent script start optimizations; a missing 'require'
399 - Symptom: "expected different content-type"
400 - Cause: website content-type changes
402 Developer-visible changes:
403 * Cleanup code (style-wise)
404 - perltidy -gnu -l=72
410 User-visible changes:
411 * Keep URL queue order
412 - Remove duplicate URL checking
413 * Remove --modver, change --version output
414 * Update manual page (clive.1, clive.pod)
415 - Rewrite EXAMPLES section
416 - Cleanup other sections
417 * Config file: add support for [output]:format (--format)
418 * Port dailymotion support from cclive
420 Developer-visible changes:
422 - Replace Perl module checking with for-loops (incl. optional)
423 * Optimize script start time
424 - Replace "use $module" with "require $module" where possible
425 * Update LICENSE, configrc
427 - Add [output]:format to configrc
428 * Add tests/dmotion.url
434 User-visible changes:
435 * Add --output-video option
436 * Add option groups to --help output
437 * Add --stream-exec and --stream options
439 * Config file: add support for
440 - [commands]:exec (--exec)
441 - [commands]:stream (--stream-exec)
442 - See configrc for an example
443 * Fix --exec; should no longer spew out "not found" shell errors
444 * Change default filename format to "%t_%d_%i.%s"
445 * Change to use "file is already fully retrieved" error message
446 * Port resizing progressbar from cclive
448 Developer-visible changes:
449 * Add tests/lastfm.url and tests/multi.lst
450 * Remove XML::Simple dependency
452 * Implement SIGWINCH handling
453 - Resize progressbar to match terminal width
454 - Progressbar width defaults to 80 (chars)
455 - OS must support SIGWINCH
456 - Requires Term::ReadKey module
457 - clive works without the module but will ignore any SIGWINCH events
458 * Touch cclive.1, cclive.pod, INSTALL and Makefile files
462 * Buried clive-list, grew weary of fighting spam with bare fists
463 - email the author directly or use the issue tracker, thanks
469 User-visible changes:
470 * Renamed the following options
471 - --noproxy => --no-proxy
472 - --noextract => --no-extract
473 - --nologin => --no-login
474 * Butchered --help output
475 - much less verbose now
476 - relocated manual page data to clive.pod
477 * Removed --manual option
478 * Obsoleted "play" and "rencode" config keys in "commands" section
479 * Added --exec option which resembles cclive's --exec command
480 * Removed --play, --noplay, --rencode and --norencode options
482 * Changed --paste short option from '-x' to '-p'
483 * Removed wmv format (breakcom)
484 - persistant HTTP/404 (not found) error
486 Developer-visible changes:
488 - additional INSTALL variables
490 - can be used to disable module checks
491 - removed "man" from "all"
492 - removed "clean" (useless)
498 User-visible changes:
499 * Fixed sevenload support
505 User-visible changes:
506 * Fixed Youtube login which sometimes reported failed attempts as OK
507 - Youtube defaults web interface language based on users ip
508 - clive looks for English words in the post-login page to confirm login
509 * Tweaked --version output
511 Developer-visible changes:
512 * Removed metacafe remnants
513 * Fixed bug in time2str subroutine which caused incorrect calculations
515 * removed genman script (obsoleted by "make man")
516 * Added a rudimentary (GNU) Makefile
517 * Cleaned up translate_embed subroutine
520 * Removed the clive-announce and clive-users mailing lists
521 - New release announcements will be posted via Freshmeat alone from now on
522 - Subscribe to the project at http://freshmeat.net/projects/clive
523 * Created the clive-list@googlegroups.com mailing-list
524 - For support questions, patches and bug reports
525 - Issue tracker will remain for tracking bugs
526 - Send an email to clive-list-subscribe@googlegroups.com to subscribe
532 User-visible changes:
533 * Documented missing "%t" (--filename-format) in manual page
534 * Tweaked "localfile_length == remotefile_length" message
535 * Renamed CLIVE_CONFIGDIR environment variable to CLIVE_HOME
537 Developer-visible changes:
538 * Cleaned up manual page
540 * Cleaned up FreeBSD details (INSTALL)
546 User-visible changes:
547 * Removed "See --manual" from --version output
548 * Added support for evisortv
549 - http://code.google.com/p/clive/issues/detail?id=4
550 * Fixed: reused incorrectly last http error code for remaining urls in queue
551 * Fixed: progressbar reported 100% even if error had occurred (e.g. http/403)
553 Developer-visible changes:
554 * Cleaned up subroutines
560 User-visible changes:
561 * Fixed "Requested range was not delivered by the server (http/33)" w/ -c
562 - this would occur with a batch of URLs while using the --continue option,
563 e.g. if the first file was continued, the following page fetches exited
565 * Added --savebatch option
566 * Added --overwrite option
567 * Replaced the buggy progressbar with a "lazy man's progressbar"
568 * Fixed "print() on closed filehandle STDOUT" with --grep+delete
569 * Fixed progressbar display with --continue
571 Developer-visible changes:
573 * Started to bundle src tarball with clive.1 manual page
574 * Added genman script which wraps pod2man with common options
575 * Fixed a potential div by zero bug in calc_progress
581 NOTE: Changed license GPL3 => ISC/OpenBSD.
583 User-visible changes:
584 * Added --modversion option
585 * Replaced Term::Progressbar with a built-in thermometer progressbar
586 * Removed --progress=bar:nominor support due to above changes
587 * Added liveleakcom support
588 - http://code.google.com/p/clive/issues/detail?id=3
590 Developer-visible changes:
591 * Made IO::Pager module optional
593 * Cleaned up --progress option description
594 * Changed to require WWW::Curl 4.05+
595 * Removed Term::Progress module dependency
596 * Fixed a potential bug in calc_progress (improper $rate init)
598 * Made Expect module optional
604 User-visible changes:
605 * Fixed gvideo/mp4 support (http/404 even if the extraction link existed)
606 * Changed "found redirect" message
607 * Changed --play, --rencode status messages to use file basename
609 Developer-visible changes:
610 * decode_utf8($page): removes extra steps, works better with HTML::TokeParser
611 * Added missing Expect module version to INSTALL
618 This aims to be the last beta before the release of 2.0 in December 2008.
619 Please report any remaining bugs to the issue tracker at:
620 http://code.google.com/p/clive/issues/list
622 User-visible changes:
623 * Removed metacafe support until fixed (see known issues)
624 * Changed Youtube login to report if there were "too many login failures"
625 * Fixed Youtube login support: reported failures incorrectly as OK
626 * Added support clivepass(1) utility (http://code.google.com/p/clive-utils)
627 * Added support for metacafe and sevenload embed URL translation
629 Developer-visible changes:
631 * New prerequisite module: Expect
632 * Updated FreeBSD + Ubuntu details (INSTALL)
633 * Cleaned up some code
634 * Rewrote embed URL translation
637 * Metacafe support broken (http/404)
643 User-visible changes:
644 * Fixed pasting from clipboard containing multiple URLs
645 * Fixed page fetch progress glitch that occured with 1+ batches
646 * Added --agent option
647 * Added --proxy option
648 * Added --savedir option
649 * Added --cclass option
650 * Added --filename-format option
651 * Added --show-format option
652 * Added --youtube-user and --youtube-pass options
653 * Added --emit-xml option
654 * Added --progress=[none|bar|dot]
655 * Replaced --noprogress with --progress=none
656 * Added avg. transfer rate notification
657 * Fixed filename printing for existing output files (e.g. output.flv.1)
658 * Added --play option
659 * Fixed metacafe support (error: failed to extract videoCDNURL)
660 * Added --rencode option
662 Developer-visible changes:
663 * Ported --emit-csv option from 1.x with minor changes
664 - Backwards compatible with 1.x
665 - Prints additional video details
666 - $length, $video_id, $time_stamp, $page_title, $cont_from, $remaining
667 * Changed to prefer 'dot' bar if the output is not a TTY
668 * Replaced progress bar with Term::ProgressBar (new module prerequisite)
669 * Cleaned up queue processing subroutine
675 User-visible changes:
676 * clive now ignores input lines that start with the '#' character
677 * Added support for CLIVE_CONFIGDIR environment variable
678 * Ported lastfm video support from 1.x
679 * --version now displays XML::Simple
680 * Changed "= Play:" to "=> Playing ..."
681 * Playing occurs now subsequently after going over the URL batch
683 Developer-visible changes:
684 * Removed a google video redirect (commented out, see code)
685 * Added the AUTHORS file
686 * XML::Simple was missing as a prerequisite in INSTALL
687 * Made minor syntactic tweaks to the source code
688 * Fixed missing --quiet check with the "=> Play" message
694 A complete overhaul and rewrite of 1.x.
696 User-visible changes:
697 * Users are expected to use the --continue/-c option to resume transfers
698 * Configuration file format (=> INI), path was changed (=> ~/.config/clive)
699 * All extractions now assume flv as the default download format
700 * Users are expected to understand when/how use the --format/-f option
701 * Reading input from multiple sources is possible (e.g. % clive -x URL URL)
702 * Added: --grep: used to grep and recall cached URL entries
703 * Added: --background and --output=logfile, --append=logfile options
704 * Many old cmdline and config options were removed due to new design
705 * Improved GoogleVideo support: handles redirects to other hosts
706 * Pager is used where needed (e.g. --show/-s)
707 * Changed default output file naming format to "%n-(%i)-[%d].%s"
708 * Removed: guba (deadweight), myvideo (borked), dmotion (bitches @ anon users)
710 Developer-visible changes:
712 - See the INSTALL file for prerequisites
713 * No installation: all-in-one script (excl. the 3rd party modules)
714 * Cache is now an integral part of clive, see CACHE in the manual page
715 * Embedded the --manual page (Pod)
716 * Improved Youtube login: removed is_adult HTTP get (done manually now)
717 * Grab the file suffix from the Content-Type header
718 * Improved GoogleVideo support: mp4 detection no more relies on English words
719 * Improved Metacafe support: removed unnecessary "familyfilter" HTTP get
723 - 2.x+ at http://googlecode.com/p/clive/
724 - 1.x remains at http://gna.org/projects/clive
726 - 2.x+ at http://googlecode.com/p/clive/
727 - 1.x remain at http://dl.gna.org/clive
729 - http://clive.sf.net/
730 - http://home.gna.org/clive redirects to the above
732 - 2.x+ at git://repo.or.cz/clive.git
733 - 1.x remains at svn://svn.gna.org/svn/clive
734 * Issue tracking: Moved
735 - 2.x+ at http://googlecode.com/p/clive/issues/
736 - 1.x bug tracker remains at http://gna.org/projects/clive
737 * Created http://googlegroups.com/group/clive-announce/
739 NOTE: See http://dl.gna.org/clive/CHANGES for 1.x.