Skip to content

Releases: h0lg/SubTubular

Less waste, more space

27 Oct 23:29

Choose a tag to compare

This patch release focuses on

improving the layout of the Search page by

  • shrinking the individual scopes to their required content size to avoid wasting horizontal layout space
  • dynamically sizing scope list depending on how much size the scopes vs results need, avoiding wasted vertical layout space and an unnecessarily constrained and scrolled scope list
  • hiding the search results border if empty.

It also
changes the icon opening settings of playlist-like scopes to something less visually heavy and
updates NuGet dependencies.

Full Changelog: v4.1.0...v4.1.1

All is well that exits Shell

26 Jul 15:09

Choose a tag to compare

This release packs a few fixes, updates and new features for the

Shell

  • fixing exit codes
    • in case of cancellation
    • for unexpected errors
  • improving command and parameter descriptions
  • updating System.CommandLine to 2.0.0-beta6 enabling use of

UI

  • enabling picking an output folder instead of typing it in
image
  • fixing behaviour
    • re-saving recent command on saving output to include changed output options
    • preventing output settings bleed into the next saved recent command by only saving output options when generating output
    • logging errors that may occur during loading UI settings

Full Changelog: v4.0.0...v4.1.0

Gooey Parallelysis

14 Jul 23:54

Choose a tag to compare

This release brings a truckload of big, beautiful and breaking changes to SubTubular!

They said, "Try this one!"
The README ends mid-sentence.
It’s still in alpha.

The new GUI

First and foremost, there's a new Graphical User Interface SubTubular.Gui.exe that makes the app approachable for non-technical users.
It's built on Fabulous for Avalonia and offers a more interactive user experience than the command line can.

SubTubular light SubTubular dark

The new Shell

The command line executable (now called SubTubular.Shell.exe) has been completely rewritten using the more flexible System.Commandline library, referencing the same shared library binary (SubTubular.dll) as the GUI does. Sorry in advance for breaking the existing CLI API - it had to be done & I'll update the ReadMe shortly:

New features

You can now search and list keywords of multiple scopes (channels, playlists and videos) at the same time.

In playlists and channels, you can now skip a selected number of videos (counted from the top of a playlist or channel's Videos playlist), see #8 .
The --top argument of the CLI has been renamed to --take to match the skip/take semantic.

New syntax again.
My old code stares back at me.
"Traitor", it whispers.

SubTubular now remembers recently run commands, allows listing, re-running and deleting them.

Full-text indexes of playlists and channels are now sharded, i.e. split into multiple files on disk, fixing #8 . This should prevent memory exhaustion when searching really long playlists - only shards that are currently searched have to be loaded into memory, which can be freed once they are.
The trade-off is that the scoring of results across multiple shards is worse than for a single shard - because the algorithm in that scenario had to be drastically simplified to the number of matches.

Other breaking changes

Captions are now indexed and searchable by the Caption track language name instead of all of them by captions. This makes the search in any specific language more powerful - but requires duplicating the same query for multiple caption tracks to achieve the same result. This trade-off was made - also to improve scoring accuracy (within a single shard).

New stack, new language.
Same app. More bugs. Slower load.
But hey - it's modern.

Full Changelog: v3.1.2...v4.0.0

fixing video download

04 Feb 23:52

Choose a tag to compare

What's Changed

  • bumped version of YoutubeExplode to 6.5.3 and AngleSharp to 1.2.0 by @111100001 in #12 closing #11
  • updated more NuGet packages

New Contributors

Full Changelog: v3.1.1...v3.1.2

raising validation errors

25 Oct 11:47

Choose a tag to compare

This minor release fixes

  • exception handling to raise validation exceptions into the shell instead of logging them d3f9f39
  • caption track download by updating YoutubeExplode to 6.4.3 698fbda fixing #10

Full Changelog: v3.1.0...v3.1.1

file output for keywords

20 Sep 02:42

Choose a tag to compare

This minor release

enables

  • using output parameters with list keywords to save them as text or html, fixing command description for output files and error reports

updates (among other dependencies)

  • YoutubeExplode from 6.3.5 to 6.4.1 fixing channel searching #9
  • Lifti from 5.0.0 to 6.3.0

Full Changelog: v3.0.1...v3.1.0

Tame Fuzz

09 Oct 21:15

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

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

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

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.