Skip to content

Releases: h0lg/SubTubular

Tame Fuzz

09 Oct 21:15
Compare
Choose a tag to compare

This minor release

updates

  • YoutubeExplode from 6.2.5 to 6.3.5 fixing download errors after API update
  • Lifti from 4.0.1 to 5.0.0
  • AngleSharp from 1.0.1 to 1.0.5
  • Octokit from 4.0.4 to 8.0.1

fixes

  • avoiding concurrent reading from lifti fulltext index while saving it by getting exclusive file lock
  • fixing ContinueWith() not bubbling up exceptions
  • releasing download limiter even if getting video fails to avoid filling up the download queue with failed downloads
  • fixing channel writer not completing if a download fails similarly
  • throwing all exceptions as an AggregateException when using Task.WhenAll() (instead of only the first one as is the default)
  • avoiding exception deleting non-existent playlist

Wild Fuzz

21 Jan 00:20
Compare
Choose a tag to compare

This major release focuses on

adding advanced full-text search capabilities

using LIFTI including wild card and fuzzy matching, field-specific queries and many more

but adds other new features like

  • an option for ordering playlist search results
  • option -k | --keywords to search commands for listing keywords of videos in scope with number of occurrences
  • support for channel slugs and handles
  • support for videos with IDs starting with a dash by quoting them
  • a release command for listing, opening notes of and installing other releases from github
  • options for more control over cache management on the clear-cache command

with breaking changes

  • the search-user command was removed; search-channel works using the same arguments
  • the OR separator switches from , comma to | pipe, requiring you to quote the --for argument when using it
  • the cachehours option has been renamed to cache-hours

while updating

  • target framework from .NET Core 3.1 to .NET 7,
  • AngleSharp from 0.17.1 to 1.0.1

Other improvements

performance

  • refactored parallelism using channels
  • searching already indexed videos while downloading new ones in parallel
  • parallelized searching individual videos

input validation and error handling

  • validating video, playlist and channel IDs locally and channel aliases locally and remotely
  • handling unparseble inputs and validation errors gracefully by displaying rather than logging them
  • colored error output
  • writing output file even if exception occurs

help texts

  • are using full window width now
  • have been updated and reworded where necessary

Extended context and simplified file browsing

09 Jan 06:05
Compare
Choose a tag to compare

This release extends --pad to support up to maximum 65535 characters of padding for results that require more context,

adds

  • shorter aliases for existing commands
  • --show | -s [file | folder] to the common search options make opening of output file or folder optional
  • open | -o folder command for opening app-related folders like output or error logs
  • Visual Studio Code extension recommendations to help setting up a development environment

and simplifies a few help texts.

fixes and caption formatting

10 Oct 23:54
Compare
Choose a tag to compare

This release fixes

  • the type of the -t or --top parameter's default value that broke in v2.2.1 and led to searches without explicit top parameter running into an error
  • outputting default value for --pad in help text

improves caption full-text formatting by skipping or removing line breaks that seem to have recently been introduced in auto-generated subtitles

and updates the YoutubeExplode binaries from 6.2.2 to 6.2.5.

fixes, improvements and binary updates

09 Oct 21:55
Compare
Choose a tag to compare

This maintenance release includes the following

fixes

  • fixed calculation and usage of included padded match end as well as matched value extraction from full-text
  • fixed merging overlapping padded matches avoiding duplicate merged matches in result

improvements

  • merging padded matches not only if they're overlapping, but also if they're touching
  • handling cache deserialization errors by deleting cache file
  • safe-guarded number parameters against misuse with negative values
  • removed trailing space from error file names
  • added names for required command values to improve help
  • restructured help text and reduced preceding noise if a verb is selected already

binary updates

  • YoutubeExplode from 6.0.7 to 6.2.2
  • CommandLineParser from 2.8.0 to 2.9.1
  • AngleSharp from 0.16.1 to 0.17.1

contributor/developer help

  • Visual Studio Code launch and tasks configs, fixing #2
  • commands for upgrading dependencies and other useful tasks

context is everything

14 Jan 05:15
Compare
Choose a tag to compare

new features

This release introduces the new parameter -p | --pad for selecting how much context (in characters; min 0; max 255) to display a match in.

other improvements

Overlapping matches are now merged in the output. This prevents confusing duplicates. This became particularly necessary with increased match padding/context.

The search now matches multi-word phrases in video descriptions across lines like it already did for captions.

The result output of multi-line text like for title, description or caption matches is now wrapped and indented to fit the console window nicely and improve output structure, applying the same formatting to any generated file.

Any generated output file will now be opened automatically after it was written, saving the user some file browsing.

And finally, captions of tracks are now sanitized and ordered before the search to prevent duplicates and overlaps in the matches or them being out of chronological order.

Fixing logging of generic errors

15 Dec 02:57
Compare
Choose a tag to compare

This release fixes the logging of generic errors broken in v2.1.1 .

handling caption track errors without interrupting the search

11 Nov 20:17
Compare
Choose a tag to compare

This release fixes the error logging introduced in v2.1.0 - specifically the time stamp format in log file names, enabling error logs to be actually written.

It adds

  • handling & logging of individual caption track errors without interrupting the search
  • outputting playlist or video URLs in the search result header for easier navigation and debugging
  • outputting video title in search result as context even if it doesn't contain a match

added error logging

21 Aug 17:40
Compare
Choose a tag to compare

This release fixes a bug in v2.0.0 that occurs when not using file output
and adds error logging to file.

repairs and extensions

01 Aug 15:21
Compare
Choose a tag to compare

This release fixes getting YouTube video info by updating YoutubeExplode to latest version.

That made a breaking change in the SubTubular API necessary - i.e. changing the -l or --latest parameter to -t or --top because YoutubeExplode v6 does not return the uploaded date for the videos in a playlist any longer, making the original functionality hard to implement efficiently.

Additionally, it adds new features for outputting the search results as either a text or HTML file containing hyperlinks.