Releases: jamesbrindle/YTMusicUploader
Version 1.4.2
-
Made ManageYTMusic form a lot smoother
-
General ManageYTMusic form UI enhancements / snag fixes
-
Prevented ManageYTMusic form from blocking the UI with additional threading
-
Parallel album / song deletion from YT Music for improved performance
-
Fixed bug of deletions not deleting from Artist cache (so when you open up the ManageYTMusic form, the deleted albums / songs haven't been ghost added back to the list)
-
Fixed bug on IssueLog and UploadLog form, as BrowseID hadn't been removed from MusicFiles DB column
Version 1.4.0
Version 1.3.8
Bug Fixes
-
Search by artist and track without album, didn't realise tracks without albums were actually throwing a null exception.
-
General bug fixes, like missing null check, wrong variables assigned in an in-line if etc.
Improvements
-
Made 'upload check' more efficient by more carefully checking variables and not iterating over lists when there's no need (i.e., the cache, when it's a new upload) and also not re-querying YT Music for an alternative album or track name when a change hasn't even been made.
-
Issues and Uploads log now has sortable and re-orderable columns.
-
MBID and ReleaseMBID are fetched in 1 MusicBrainz request now rather than 2 (releaseMBID exists in recordings object in a sub-list), so more efficient less requests.
Further Development
-
Uploads and music file check now fetches the YT Music entity ID for the song, which is used when 'deleting' a song -> So eventually, can make an option on the UI to: "Delete from YouTube Music When Deleting From Personal Library".
-
Added an 'Idle Processor': This processor runs when the application is Idle to attempt to fill out missing data in the database, for example any missing MBIDs and YT Entity IDs. Every 5 second (to keep requests to a minimum) it will get a random MusicFile entry from the database with the missing information and make a request to see if it's a available. This is particular useful as we've disabled the 'MusicBrainz Lookup' when doing a preliminary scan of the library folder to check for already uploaded songs, seen as though the scan can turn over 20 song per second (max), but MusicBrainz only allows for 1 request per second from the same IP.
-
Now, when the application starts (and every 2 hours), the application requests all the Uploaded artists from YouTube Music and caches them. The reason being, that the standard 'check for already uploaded' uses the search API, which isn't always reliable. So now, if the search yields no results it will refer to the cached artists, and then fetches all the songs by that artist and does
a cross check against them. The result is that it reduces a lot of 're-uploads' when the meta data of the music file doesn't match 'enough' to what's listed on YouTube Music.
General
-
A lot of refactoring and cleaning
-
Documentation update
Version 1.3.5
Development
- Changed file hash calculator from MD5 to xxHash (much faster).
- Re-wrote FileUploader class / implementation.
- Added existing upload check 'read-ahead' cache, and perform checks on already uploaded files concurrently for greately increased performance.
- Included MusicBrainz API source rather than package to include own application User-Agent.
- Handle the fact that you can only make 1 MusicBrainz API request per second... Effectively now makes the implementation useless when we can scan several files per second, so just use it as a fallback and rely on meta data from music file tags (use of TagLib).
- Removed MusicBrainz API request cache - It's pointless now.
Bug Fixes
- Listen for Windows 'Shutdown' event, so that the application doesn't halt the Windows shutdown process if it's still running.
- Show default cover image when finished scanning / uploading the music collection.
- Handled where there are too many caught exceptions with proper variable checks (MB API related).
General
- Updated documentation.
Version 1.3.3
Just some graphics changes
Version 1.3
-
Added existing YouTube Music personal library songs check, so it doesn't unnecessarily upload a song that already exists. It's a fair requirement that uploaded music files have present and correct tags for this to work. Another check will be performed on each song once per month to see if the uploaded music file is still there.
-
Added MusicBrainz and CoverArtArchive API implementation, as well as standard music file meta tag reading to show a cover image of the currently uploading song.
-
Added meta tag details to a tool-tip on the cover image of the currently uploading song.
-
Performs an internet connectivity check before uploading any song, to make sure we're connected and not receive any error responses.
-
Made the 'ConnectToYTForm' now a dialogue, so it uses a different thread and it seems to make the WebView2 control a more stable (and doesn't have to reload the page when you next open it making it seem smoother).
-
Added installer for a x64 application.
Version 1.2
-
Corrected spelling mistakes :(
-
Added cursor changes for buttons and hyperlinks.
-
Tested msi successfully 'upgrades' to newer version.
Version 1.1
-
Added addition checks for Edge Core files dependencies rather than just checking if the directory exists (as during install you can quit the application, leaving some files not extracted).
-
Reduced number of Edge Core files dependencies.
-
System Tray icon now displays status when you hover over.
Version 1.0
-
First release of the YT Music Uploader application.
-
Contains Edge v84.0.522.63 from the Canary Channel (core files). Hence this installer is 70+ MB. Will try reduce that in the future (or not have to include it at all once WebView2 is standard). The application itself will install this if it's missing.
-
Issues and feedback welcome.