All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.13.0 2024-03-13
- Instrument most functions and methods to generate meaningful spans
- Preserve spans in spawned tags
- Implement optional OpenTelemetry export to local Jaeger instance.
See
README
for instructions.
To avoid misunderstandings:
The OpenTelementry feature is local-only and opt-in, and only used for debugging purposes.
- Update dependencies.
- Migrate ratatui to v0.26.1.
- Upgrade nix to v0.28.0.
0.12.0 2024-03-12
- Fix failures upon
HTTP 429 Too Many Requests
response status by globally implementing fetch retry.
0.11.2 2024-01-19
- Recognize lazy-loaded inline frame source URLs.
- Tighten code style to pedantic level.
- Signal child process shutdown to global shutdown process, rather than polling child stages.
- Update dependencies.
- Migrate ratatui to v0.24.
0.11.1 - 2023-10-21
- Keep rendering while waiting for child processes to shut down.
0.11.0 - 2023-10-21
- Support YouTube video and livestream player URLs as arguments.
- Add support for events without event hash.
- Use
clip_to_play
rather thanstreamable_clip
when extracting event video URLs.
- Update dependencies.
0.10.0 - 2023-09-19
- Add experimental support for Vimeo events. Requesting exit (Q, Esc, Ctrl-C) will now wait 5 seconds before quitting, to allow the downloader to mux event live streams before terminating. During these 5 seconds the UI freezes. In the future it will be made to keep rendering.
- Refactor existing functionality into modules for future maintainability.
0.9.0 - 2023-09-14
- Handle child process exit, either terminating by signal, or exiting with non-zero status. Prematurely exited downloader child processes will mark the corresponding download as 'Failed'. Auto-retry can be added later.
- Allow pre-TLS 1.3 connections for the time being
- Update dependencies.
0.8.1 - 2023-09-12
- Support Vimeo links as input. Vimeo showcase and Vimeo player URLs can now be passed as downloadable URL.
If the target is referer restricted, use the
--referer
command line option, passing the embedding page's URL. Closes #19.
- Store
downloader
anddownloader_options
inState
rather than pulling them all the way through the call tree.
0.8.0 - 2023-09-12
- Document
--downloader
command line option.
- Update dependencies.
- Adhere to new clippy lints.
- Update showcase clips detection to latest player changes.
0.7.0 - 2023-07-07
- Pass all command line options after a double dash (
--
) straight to the downloader. This allows for detailed configuration ofyt-dlp
. - Release terminal before printing error and panic stack traces.
- Add
reqwest
andhyper
to credentials.
- Rename command line flag
--bin
to--downloader
to matchdownloader_options
. - Clarify logging options in
README.md
. - Rename log file to
showcase-dl.log
. - Minor code clean-up.
- Update locked dependencies.
- Remove built-in
mp3
andopus
audio extraction. The former behavior can be imitated by appendingyt-dlp
audio extraction options to the command line. E.g.:showcase-dl <URL> -- --extract-audio --audio-format "opus/mp3" --keep-video
- Print failing command in spawn error message.
0.6.1 - 2023-06-04
- Set an arbitrary user agent string to circumvent Vimeo crawler player, which does not fill the
<title />
HTMl tag correctly. (#9) - Decode HTML entities in video titles.
- Demote content dumps into 'trace' log level.
- Lift successful title match into 'info' log level.
- Use
%
/Display
rather than?
/Debug
to render readable content dumps.
0.6.0 - 2023-06-04
- Migrate
yt-dlp
from--referer "<URL>"
to new style--add-header "Referer:<URL>"
- Migrate from unmaintained
fdehau/tui
totui-rs-revival/ratatui
. Thanks joshka! (#4, #5) See also fdehau/tui-rs#654 - Sort
use
groups andmod
in a standardized fashion: (#6)use std::...
use <external>::...
use
internal- Relative without
self::
for submodules - Relative with
super::...
where in the same logical group; e.g.ui/layout
usessuper::style
, as both are tightly coupled - Absolute with
crate::...
- Relative without
mod ...
- Switch from
lazy_static
toonce_cell
untilstd::sync::LazyLock
is released. (#7) - Swallow
futures::future::Aborted
explicitly. (#8)
- Change
maybe_join
to propagate future output result. (#3)
(none)
0.5.2 - 2023-05-03
- Update transitive dependencies.
0.5.1 - 2023-02-10
- Progress detail extraction failed in rare cases.
0.5.0 - 2023-02-10
- Tracing logs are now written to
vimeo-showcase.log
and can betail
ed for live viewing. - Custom patched versions of
yt-dlp
oryoutube-dl
can be used via the new--bin
option. - Add
CHANGELOG.md
, following Keep a Changelog.
- Downloader errors are now reported with error log level.
0.4.0 - 2023-01-21
- Download progress is now correctly parsed again, after
yt-dlp
changed to a tabular format.
0.3.2 - 2023-01-21
- Command line help is now wrapped by
clap
.
- Change command line arguments definitions to use
clap
4 attribute macros. - Follow
clippy
auto-deref lints.
0.3.1 - 2023-01-21
- Extract
mp3
andopus
audio withffmeg
.
- Regex failed to match valid embeds.
- Update dependencies.
- Upgrade
clap
from3.x
to4.1.1
.
0.3.0 - 2022-09-12
- Implement terminal user interface.
- Add
README.md
- Spawn tasks to make use of multi-threaded runtime.
- Implement graceful shutdown.
0.2.0 - 2022-09-07
- Implement progress tracking in shared state, preparing for terminal UI.
- Use lazy_static! for compile-once regular expressions.
0.1.0 - 2022-09-05
- Initial implementation.