Releases: h0lg/SubTubular
Less waste, more space
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
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
- the diagram directive to debug input binding
- specifying parameters in response files, solving #13
UI
- enabling picking an output folder instead of typing it in
- 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
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.
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
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
- @111100001 made their first contribution in #12
Full Changelog: v3.1.1...v3.1.2
raising validation errors
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
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
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
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 | --keywordsto 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
releasecommand 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
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 optionalopen|-ofolder 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
This release fixes
- the type of the
-tor--topparameter's default value that broke inv2.2.1and led to searches without explicit top parameter running into an error - outputting default value for
--padin 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.