5 * Bump autoconf prereq to 2.68
8 * Incorrect documentation for --retry=0
15 * Add --license option
16 * Add --regexp default "/(\w|\s|\pL)/g" (issue #43)
17 * Add --enable-tests (configure, disabled by default)
24 * Disable tests/multi-segment.pl (libquvi: cctv support broken)
25 * Remove tests/noformat-eval.pl
26 * Bump autoconf prereq to 2.66
27 * New default --format value (`flv' -> `default').
28 * Warn if --format, --format-map use invalid values
30 * Use CURLOPT_RESUME_FROM_LARGE instead
31 * Bump PKG_CHECK_MODULES(libquvi) to 0.2.0
41 * Update to use libquvi's quvi_next_supported_website function
42 * Add AM_SILENT_RULES([yes])
49 * tests/multi-segment.pl now checks for locale
52 * -f best, accepted again (closes issue #24)
59 * Updated manual to reflect the dailymotion format id changes
60 * Remove the hardcoded --format values
61 # Use libquvi provided values instead
62 * Add tests/noformat-eval.pl
63 * Cleanup notice message (configure)
64 * Add tests/pod-check.pl (replaces "make checkpod")
67 * tests/Makefile.am: Missing separator (Makefile:450, rep. FreeBSD)
74 * Multi-segment support (e.g. some cctv videos)
75 * Remove "Features" from --version output
76 * Rewrite of retrying transfers
77 * --version now prints libquvi version (instead of libcurl)
79 Developer-visible changes:
80 * Add dependency for libquvi (see NEWS and INSTALL files)
81 * Remove libiconv dependency (ditto)
84 * Tidy up project description (e.g. README)
91 * --stream-exec, --stream-pass
92 # Add support for the %f specifier
93 # Thanks to webmaster.foto-schaal.de for the patch
95 * Add spyfilms support
96 # Thanks to Hanno Böck for initial patch and data
102 User-visible changes:
103 * Fix "-f unavailable_format" for dailymotion
104 # Use first found link instead of croaking with an error
105 * Fix "-f best" for dailymotion
106 # Use proper sorting method
107 # Thanks to Markus Doppelbauer for reporting the issue
110 Developer-visible changes:
111 * configure: dump build configuration
112 * tests/sevenload.cpp: remove dead test link (closes issue #19)
118 User-visible changes:
119 * Do not replace dashes with underscores in IDs
120 * --substitute: support multiple regexps (re-closes issue #17)
121 # Read manual page for updated details
125 Developer-visible changes:
126 * tests: support MULTI_TEST env.var. (see INSTALL)
127 * Remove redtube remains from the src tree
133 User-visible changes:
134 * Add --background, --logfile, --logfile-interval
135 * Add --substitute (closes issue #17)
136 * Tweak static error strings (e.g. "system call failed" -> "system")
137 * Croak if file open fails prior to video download (related to issue #17)
138 * Sort --hosts output alphabetically (Thanks to Bram Neijt for the patch)
139 * Decode properly predefined (X)HTML numeric character references
140 * Changes to --regexp
141 # Support Perl-like regexps (see NEWS file, updated manual for more)
142 # Add support for Perl-like /i
143 # Remove --find-all (use /g with --regexp instead)
144 * Fix random sevenload http/401 errors (closes issue #14)
145 # Caused by use of predefined HTML entities in video links
146 * Fix CURLE_RANGE_ERROR handling for file transfers
147 # Caused infinite loop of "Requested range was not delivered by the server"
148 # Stop after --retry specified limit has been reached
150 Developer-visible changes:
151 * Bump AC_PREREQ to 2.65
157 User-visible changes:
158 * Add predefined HTML character entity (e.g. ") conversion
159 * Add support for tube8.com
160 # Thanks to anonymous contributor for the patch
161 * Allow dailymotion.*
162 * Fix sevenload title parsing
163 # Use config title instead
165 Developer-visible changes:
166 * Clear up project description ("mission statement")
167 * docs/AddingSupport: add checklist and 0.6.0 note
173 User-visible changes:
174 * Fix: youtube -f best (error: parse failed: no match: (?i)"fmt_map": "(\d+))
175 # Failed if fmt_map was an empty string
178 # youjizz.com (closes issue #11)
179 # xvideos.com (closes issues #12)
180 # Both contributed by i.am.a.real.coward
186 User-visible changes:
187 * Fix: google title parsing (closes issue #6)
188 # Use <title> instead
190 Developer-visible changes:
191 * Remove: AC_PROG_CPP (deprecated)
192 * Fix: AM_ICONV failed to detect iconv (mingw, freebsd, ...)
193 # Use a proper config.rpath file
194 * Remove: use of tmpfile(3) (queryFileLength)
195 # Read into memory instead when querying file length
201 User-visible changes:
202 * Fix: dailymotion id parsing
205 # fmt34 is now treated as yet another (new?) format
206 # Rewrite youtube section of the FORMATS in the manual
207 * Fix: cctv title parsing (related to issue #4)
208 * Fix: Segmentation fault with -q switch (closes issue #3)
209 * Vimeo: Fix title parsing (related to clive issue 37 "accented chars")
210 * Golem: Parse title from fetch config xml instead
212 Developer-visible changes:
213 * Disable tests: redtube (see known-issues)
214 * "make check": ADULT_OK env.var. enables redtube test
215 * Bump autoconf prereq to 2.64
218 # New AM_INIT_AUTOMAKE([-Wall -Werror foreign dist-bzip2])
219 # Add AC_CONFIG_AUX_DIR
220 # Add AC_CONFIG_MACRO_DIR
222 # Add AC_PROG_MKDIR_P
226 # Use top_srcdir and top_builddir for gengetopt, etc.
228 # Use top_builddir for CCLIVE_PATH
231 * Redtube: broken (verify -> http/404)
237 User-visible changes:
238 * Fix: google support (title parsing)
239 * Fix: break support (http/403, thanks to Werner Elsler for the fix)
240 # <http://code.google.com/p/clive/issues/detail?id=38>
242 Developer-visible changes:
243 * Cleanup: remove unnecessary opts.h includes
244 * Fix: error: 'winsize' was not declared in this scope (add TIOCGWINSZ check)
245 * Handle HTTP/206 properly
246 # Fixes: (invalid) "error: fetch failed: server returned http/206"
252 User-visible changes:
254 # --regexp, --find-all
259 * Add website support (ported from clive):
264 * Add embedded video link support:
268 # Liveleak support: Unsupported protocol (rc=1) [whitespace in links]
269 # --hosts: dailymotion: spak-mini -> spark-mini
270 # ETA for resumed transfers
271 # Average rate for finished transfers
272 # --continue with local_length >= content_length
277 * Progressbar changes:
279 # Use 60s instead of 100s in time to string conversions
281 Developer-visible changes:
286 * src/cmdline.c -> src/cmdline.cpp
287 * $host.cpp: Reimpl. using pcre
292 # Add: make checkpod (replaces tests/pod.pl)
293 # Remove: --with-perl
294 # Remove: --enable-sigwinch (use SIGWINCH definition in signal.h)
295 * tests/: Rewrite in c++
296 # Note the extension changes (.c -> .cpp)
298 # Add support for CCLIVE_TEST_OPTS
299 # Set CCLIVE_NO_CONFIG to ignore ~/.ccliverc (src/opts.cpp)
303 * tests/redtube.cpp: Replace dead test link
304 * Remove: tests/pod.pl
310 User-visible changes:
313 * Thanks to Patrick Hoffmann <patrick@sobran.de> for the patch
315 # Dailymotion: spak-mini -> spark-mini
316 # Funnyhub: ID parsing
317 # Funnyhub: title parsing (proper cleanup)
318 # --title with multiple video page links
319 * Example: cclive -t URL URL2
320 * Segfault after 1st video when HTML parsing begins for 2nd
321 * Reason: Perl: incomplete cleanup
323 Developer-visible changes:
324 * Rewrite --title handling
325 # Allow $host.cpp impl. override HTML <title>
326 # hosthandler.cpp: Remove WITH_PERL block
327 # pl.cpp: impl. PerlMgr
328 * tests/youtube.c: new link
334 User-visible changes:
336 # golem.de support (port from clive)
337 # --format=(mp4|hd|hq|3gp) for youtube
338 # --stream-pass option
339 # clipfish.de support (port from clive)
340 # funnyhub.com support
341 * Thanks to Patrick Hoffmann <patrick@sobran.de> for the patch
343 # [unicode support] --cclass now works as expected with unicode as well
344 # Dailymotion support
346 # Pair --exec with --exec-run, the latter now triggers the former
347 # --hosts: print supported formats
348 # --version: print current locale setting
349 # --stream-exec: remove depend on --stream
351 Developer-visible changes:
352 * Reduce "header hell"
353 # $host.cpp includes are now cleaner
354 # Slightly faster compilation
355 * $host.cpp: Remove isHost overriding (HostHandler impl. obsoletes)
357 # Improve system return code handling
358 # Quote %i replacement values
359 * configure.ac: add AC_FUNC_(RE)ALLOC (make cond.)
360 * Change: tests/test.c: use system instead of execv
361 # Some tests (e.g. -f) were skipped quietly
362 * Change: make check: respect NO_INTERNET env.var.
363 * Fix: src/opts.cpp: missing #include <cstdlib>
364 # Detected on Ubuntu (gcc 4.3.3)
370 User-visible changes:
371 * Add: Return codes (see also manual page)
372 * Fix: Google mp4 support
373 1. Re-enable --format=mp4
374 * Fix: Misc. typos in the manual page
375 * Fix: help string for --format
377 Developer-visible changes:
378 * Add: pod2html check: make man now generates also html if pod2html is found
379 * Add: mingw32-build.sh, mingw32-package.sh
380 1. Covers the steps on FreeBSD although should port easily
381 * Add: --enable-tests (configure)
382 1. Enables tests run by "make check"
388 User-visible changes:
390 * Change: --format=mp4 is no longer accepted (see 0.4.3 known-issues)
392 Developer-visible changes:
393 * hostfactory.cpp: tidy up switch-case
399 User-visible changes:
400 * Add: --format=best support
401 * Add: --format=fmt35 for Youtube
403 * Add: Support for youtube-nocookie.com
404 * Fix: --emit-csv: file length: add missing std::ios::fixed
405 * Fix: Dailymotion ID parsing
406 * Fix: Liveleak ID parsing
407 * Fix: mangled error messages: rewrite curl error handling
408 * Change: --emit-csv: remove initial length
409 * Change: make --cclass, --no-cclass depend on --title
410 * Rename: --download -> --format
411 * Rename: --title-cclass -> --cclass
412 * Remove: --format=fmt6 (Youtube no longer appears to support it)
413 * Remove: --format=spark (Dailymotion, use "flv" instead)
414 * Remove: --youtube-user, --youtube-pass (at least until login fix is found)
416 Developer-visible changes:
417 * Add: tests/youtube-nocookies.url
418 * Add: examples/config file
419 * Fix: cclive.pod (*** WARNING: (section) in ... deprecated at line ...)
423 * mp4 extraction fails (Google)
429 User-visible changes:
430 * Change: --connect-timeout, --connect-timeout-socks default -> 30s
432 Developer-visible changes:
433 * src/curl.(cpp|h): make curlErrorBuffer a member variable
434 * src/singleton.h: fix precision error reported on 64bit systems
435 ** Thanks to Martin Wilke for the patch
441 User-visible changes:
442 * Fix: port title parsing fix from clive (issue #8)
443 * Add: --filename-format
445 Developer-visible changes:
446 * src/log.cpp: add missing unistd.h
452 User-visible changes:
453 * Separation of stdout and stderr (previously all -> stderr)
454 * Change: --version -> stdout (previously -> stderr)
455 * Rename: --supported-hosts -> --hosts
456 * Cleanup: manual page
458 Developer-visible changes:
459 * Rewrite to C++ (expect bugs)
461 * Add: missing cmdline.ggo file (Makefile.am)
462 * Add: missing cclive.pod file (Makefile.am)
463 * Rename: --with-sigwinch -> --enable-sigwinch (configure.ac)
464 * Change: --enable-sigwinch: default -> no (configure.ac)
465 * Rename: CHANGES -> ChangeLog
468 * Youtube login does not work (throw an error, patches welcome!)
474 User-visible changes:
475 * Add new options: (closes issue #2)
477 - --connect-timeout-socks
479 Developer-visible changes:
480 * configure.ac: use AC_GNU_SOURCE instead of defining _GNU_SOURCE manually
481 - main.c, dl.c, llst.c, host.c, login.c, util.c: remove _GNU_SOURCE define
487 User-visible changes:
488 * Replace dashes in video IDs with underscores before using them in fnames
489 * Use returned content-type for video file name suffix
490 - Use "flv" for exceptions (e.g. octet-*, x-flv, etc.)
491 * Add Youtube HD support (--download=mp4_hd)
492 - Thanks bf for the patch
494 Developer-visible changes:
495 * configure.ac: Use CANONICAL_SYSTEM instead of CANONICAL_HOST
496 - main.c: use CANONICAL_TARGET instead of CANONICAL_HOST
497 * Add tests/youtube-hd.url
498 * Cleanup manual page (cclive.1, cclive.pod)
504 User-visible changes:
505 * Fix googlevideo support
506 - Symptom: "error: 'docid: ' not found"
507 - Cause: id extraction failed
508 * Change --version output
509 * Update OTHER section in the manual page (cclive.1, cclive.pod)
511 Developer-visible changes
512 * Fix various compilation warnings (gcc 4.3+)
513 * Cleanup code (style-wise)
514 - indent -nut -i4 -ldi8
515 * Convert to use GNU Autotools
516 * Remove GNU Makefile
523 User-visible changes:
524 * Fix dailymotion support
525 - Changes to website HTML; incorrect copy-to-string
526 - Symptoms: output filename utter gibberish
532 User-visible changes:
533 * Port lastfm-youtube support from clive
534 * Fix googlevideo support
536 Developer-visible changes
537 * Add tests/lastfm.url
539 * Touch cclive.pod and cclive.1
545 User-visible changes:
546 * Add --title and --title-cclass options
547 * Add --stream-exec and --stream options
548 * Change --version to print build-time options (e.g. --with-sigwinch)
549 * Remove -e short option (--exec)
551 Developer-visible changes:
552 * Touch INSTALL, cclive.pod, cclive.1 and README
553 * Fix gcc 4.3+ "format not a string literal and no format arguments" warning
554 * Makefile: add WITH_PERL [default:no]
555 * Add missing GPL header (cclive.h)
561 User-visible changes:
562 * Removed wmv format (breakcom)
563 - persistant HTTP/404 (not found) error
564 * Added --print-fname
565 * Fixed file naming when output file exists already
566 Symptoms: output file is called ".1" or ".2" etc.
572 User-visible changes:
573 * Added --number-videos
574 * Fixed HTTP proxy support (main.c, opts.c)
575 - Fixed: --no-proxy was ignored if http_proxy env. variable was set
576 - Fixed: http_proxy env.v. was misshandled causing cclive to crash at exit
577 - missused cc.gi.proxy_given by setting it to 1 when http_proxy was set,
578 causing gengetopt generated code to try to free an invalid pointer
579 - Changed: libcurl is now responsible for using http_proxy
580 - option --proxy=address still overrides http_proxy definition
581 * Implemented SIGWINCH signal handling
582 - progressbar now resizes along with terminal width but not below 80 chars
583 * Fixed: --limit-rate no longer limits following page transfers after file dl
585 Developer-visible changes:
586 * Replaced remaining (excl. gengetopt generated) strcat with safer strlcat
587 * Merged opts.c into main.c
588 * Rewrote cclive struct
589 - config parser (pp) is now freed immediately after parsing
590 - Removed http_proxy_env from the struct
591 - exec_mode is now a local variable
592 * Rewrote up parse_opts function
593 * Added WITH_SIGWINCH to Makefile, e.g. "make WITH_SIGWINCH=no"
594 - if != "yes" cclive is built without the resizing feature described above
595 which depends on SIGWINCH and ioctl(TIOCGWINSZ)
601 User-visible changes:
602 * Tweaked progressbar to fit better
603 * --limit-rate now limits file transfers only
604 * Fixed crashing at exit while using --exec
605 - Caused by incorrect use of free in llst_free (llst.c)
611 User-visible changes:
612 * Added --exec option
613 * Fixed sevenload support
614 * Added support for dailymotion
615 * Extracted videos are now saved as $host_$id.$suffix
616 * Fixed file naming: $id-($host).$suffix.$num => $host-($id).$suffix.$num
618 Developer-visible changes:
621 * Added tests/dmotion.url
622 * Updated tests/7load.url
623 * Updated README with "cclive != clive" section
624 * Use of FREE macro (cclive.h) instead of free(3)
625 * Fixed incorrect freeing of embed to video page converted link
626 - Symptoms: % cclive < tests/youtube.url => crash at fetch 2nd link
627 * Cleaned up .c and .h files
628 - Relocated some of the functions to reduce .h spam
629 - Removed obsoleted .c files
630 - Renamed much of the functions with "cc_" prefix
631 - Removed "extern" from .h files