Releases: ChemistryGull/SomeDL
SomeDL - v1.4.0
[1.4.0] - 14.05.2026
Several small feature additions.
Added
- Add
album_cover_sizeoption to the config file to set the cover art resolution. Default is large (544x544). It is now also possible to add no cover art by setting that option to"none" - Add sleep timer, as a flag as well as config option. This adds a sleep of the value inserted + 0-5 seconds as a sleep between each yt-dlp download to avoid IP blocking.
- Add
--rangeflag to only download a certain section of the input list. Follows the python slicing syntax (:3, 1:4:2, ::1, 1::2, etc...). - Add sync file selection prompt when entering
somedl syncwithout a sync file name.
Fixed
- Change artist downloading mechanism to incorporate newest changes in the ytmusicapi (sigma67/ytmusicapi#899)
SomeDL - v1.3.3
[1.3.3] - 18.04.2026
Added
- Add cache for the ytmusicapi
get_albumcall. This reduces the amount of YouTube Music requests and should improve download speeds by about 0.5 seconds for songs where the cache is utilized. This cache is per session only, nothing is stored on the users filesystem. - Add traceback to critical errors in the metadata fetching and download loops for easier debugging and issue reporting.
Fixed
- Fix bug where metadata fetching would fail when both youtube and lrclib return no results
- Removed dev print statements from 1.3.2
SomeDL - v1.3.1
[1.3.1] - 14.04.2026
Fixed
- Fix critical bug that prevents people from starting SomeDL when they do not have a config file yet.
[1.3.0] - 12.04.2026
Another large update with many small added features. I could never test each edgecase alone, so please let me know if you find any inconsistencies or bugs!
Added
- Add sync files feature. It lets you define a quick shortcut to download a list of playlists with their own configuration.
- Add functionality to download all albums from an artist with a channel URL
- Add fetch_album to the config.
- Add
--no-albumflag to override the above config setting - Add download archive feature. Define a download archive file with
--downlaod archive /path/to/archive.txtor by changing thedownload_archiveconfig. When such a file is defined, all video IDs will be added into that download archive and will be skipped on any future download attempts. - Add
--redownloadflag to download a song even if its either in a download archive or the file is already present. If the File is present, it will be overwritten. - Add
check_if_file_existsconfig and corresponding--skip-file-checkflag to skip checking if a file does already exist. Useful for when you want to have duplicates of the same songs as single & album versions (Having files with the same artist and song title is elsewise not possible, even if in another album) - Add
somedl update-metadatafunctionality. So far it only supports updating or adding lyrics.
Changed
- In thread_fetch_metadata, switch from iterating over a list to a queue design, to make continous updates via the web-ui possible
- Move header printing into console.print_header() to clean up main function
- Clean and remove unused imports in main
- Move process_song_list_concurrent to processor module to make it reusable for webui
- Entering
somedl download "..."now does not try to look up a song called "download".
Fixed
- Fix bug where setting lyrics_type to "none" would still look up lyrics.
- Add .strip() to all song titles for the (very) rare case that youtube mistakingly adds whitespaces at the end of the title.
Removed
- Remove unused deprecated process_song_list_sequential function
SomeDL - v1.3.0
[1.3.0]
Another large update with many small added features. I could never test each edgecase alone, so please let me know if you find any inconsistencies or bugs!
Added
- Add sync files feature. It lets you define a quick shortcut to download a list of playlists with their own configuration.
- Add functionality to download all albums from an artist with a channel URL
- Add fetch_album to the config.
- Add
--no-albumflag to override the above config setting - Add download archive feature. Define a download archive file with
--downlaod archive /path/to/archive.txtor by changing thedownload_archiveconfig. When such a file is defined, all video IDs will be added into that download archive and will be skipped on any future download attempts. - Add
--redownloadflag to download a song even if its either in a download archive or the file is already present. If the File is present, it will be overwritten. - Add
check_if_file_existsconfig and corresponding--skip-file-checkflag to skip checking if a file does already exist. Useful for when you want to have duplicates of the same songs as single & album versions (Having files with the same artist and song title is elsewise not possible, even if in another album) - Add
somedl update-metadatafunctionality. So far it only supports updating or adding lyrics.
Changed
- In thread_fetch_metadata, switch from iterating over a list to a queue design, to make continous updates via the web-ui possible
- Move header printing into console.print_header() to clean up main function
- Clean and remove unused imports in main
- Move process_song_list_concurrent to processor module to make it reusable for webui
- Entering
somedl download "..."now does not try to look up a song called "download".
Fixed
- Fix bug where setting lyrics_type to "none" would still look up lyrics.
- Add .strip() to all song titles for the (very) rare case that youtube mistakingly adds whitespaces at the end of the title.
Removed
- Remove unused deprecated process_song_list_sequential function
SomeDL - v1.2.4
[1.2.4] - 09.24.2026
Fixed
- Fix typos
[1.2.3] - 31.03.2026
Fixed
- Fixed issue where it would always download .lrc file, even if
lrc_fileis setfalse
[1.2.2] - 31.03.2026
Fixed
- Fixed missing import of console module in genius.py
[1.2.1] - 31.03.2026
Fixed
- Fixed bug in the version check cache that would wrongly alert about an update.
[1.2.0] - 31.03.2026
Overview
SomeDL 1.2.0 contains big changes to the entire codebase. The core metadata fetching process has been refactored to enable concurrent downloading. These changes also enable more modular reuse of certain parts of the code, allowing the implementation of new features without duplicating much code. Speaking of new features, this update includes a feature to download entrie albums of every input query with the --fetch-album flag, a utility to update your existing folder structure with somedl new-metadata, and a utitity to import songs aquired by other means, or to update metadata in your existing library with somedl import. This update also includes a complete UI rewrite, which was necessary for concurrent downloads. The new UI should be more user-friendy by hiding unnecessary information. Users that still want to see what is going on behind the scenes can change their logging level with the new flags -v (just minor warnings, like missing metadata), -vv (About the same amout of info as with the old default UI) and -vvv (Everything, including debug information).
For feedback - positive and negative - regarding these chagnes, please use the discussion tab or open a new issue!
Added
- Add already_downloaded_list to download report
- Add
--fetch-albumfunctionality - Add lrclib as main lyrics source, youtube is fallback
- Add synced lyrics support (with lrclib as source)
- Add concurrent downloading functionality with user-editable download workers and queue size.
- Add completly new CLI UI which is more user-friendly.
- Add different verbosity flags:
-v,-vvand-vvv - Add
somedl import: Import songs downloaded with yt-dlp or aquired from other sources into a set folder structure, while also updating the metadata. - Add
somedl new-template: Utility to automatically move your library into a new storeage template.
Changed
- Refactor album check to metadata_album_check() function
- Reworked the download report
- Implement new clean_song_title function in utils
- Change genius input to song_title_clean over song_title
- Completely changed logging system to Python Rich based console printing.
- Switched to Syslog inspired log servity levels (0-7).
- The version check is only done once per 24 hours, the last check including version is added into somedl_version_cache.json in the SomeDL directory
Fixed
- Fix filename recognition for files with square brackets in them
- Include check for genius metadata
- Some minor tweaks that hopefully will improve the experience.
Removed
- Python Logging based logging. Will completely remove module in the future.
SomeDL - v1.2.3
[1.2.3] - 31.03.2026
Fixed
- Fixed issue where it would always download .lrc file, even if
lrc_fileis setfalse
[1.2.2] - 31.03.2026
Fixed
- Fixed missing import of console module in genius.py
[1.2.1] - 31.03.2026
Fixed
- Fixed bug in the version check cache that would wrongly alert about an update.
[1.2.0] - 31.03.2026
Overview
SomeDL 1.2.0 contains big changes to the entire codebase. The core metadata fetching process has been refactored to enable concurrent downloading. These changes also enable more modular reuse of certain parts of the code, allowing the implementation of new features without duplicating much code. Speaking of new features, this update includes a feature to download entrie albums of every input query with the --fetch-album flag, a utility to update your existing folder structure with somedl new-metadata, and a utitity to import songs aquired by other means, or to update metadata in your existing library with somedl import. This update also includes a complete UI rewrite, which was necessary for concurrent downloads. The new UI should be more user-friendy by hiding unnecessary information. Users that still want to see what is going on behind the scenes can change their logging level with the new flags -v (just minor warnings, like missing metadata), -vv (About the same amout of info as with the old default UI) and -vvv (Everything, including debug information).
For feedback - positive and negative - regarding these chagnes, please use the discussion tab or open a new issue!
Added
- Add already_downloaded_list to download report
- Add
--fetch-albumfunctionality - Add lrclib as main lyrics source, youtube is fallback
- Add synced lyrics support (with lrclib as source)
- Add concurrent downloading functionality with user-editable download workers and queue size.
- Add completly new CLI UI which is more user-friendly.
- Add different verbosity flags:
-v,-vvand-vvv - Add
somedl import: Import songs downloaded with yt-dlp or aquired from other sources into a set folder structure, while also updating the metadata. - Add
somedl new-template: Utility to automatically move your library into a new storeage template.
Changed
- Refactor album check to metadata_album_check() function
- Reworked the download report
- Implement new clean_song_title function in utils
- Change genius input to song_title_clean over song_title
- Completely changed logging system to Python Rich based console printing.
- Switched to Syslog inspired log servity levels (0-7).
- The version check is only done once per 24 hours, the last check including version is added into somedl_version_cache.json in the SomeDL directory
Fixed
- Fix filename recognition for files with square brackets in them
- Include check for genius metadata
- Some minor tweaks that hopefully will improve the experience.
Removed
- Python Logging based logging. Will completely remove module in the future.
SomeDL - v1.2.2
[1.2.2] - 31.03.2026
Fixed
- Fixed missing import of console module in genius.py
[1.2.1] - 31.03.2026
Fixed
- Fixed bug in the version check cache that would wrongly alert about an update.
[1.2.0] - 31.03.2026
Overview
SomeDL 1.2.0 contains big changes to the entire codebase. The core metadata fetching process has been refactored to enable concurrent downloading. These changes also enable more modular reuse of certain parts of the code, allowing the implementation of new features without duplicating much code. Speaking of new features, this update includes a feature to download entrie albums of every input query with the --fetch-album flag, a utility to update your existing folder structure with somedl new-metadata, and a utitity to import songs aquired by other means, or to update metadata in your existing library with somedl import. This update also includes a complete UI rewrite, which was necessary for concurrent downloads. The new UI should be more user-friendy by hiding unnecessary information. Users that still want to see what is going on behind the scenes can change their logging level with the new flags -v (just minor warnings, like missing metadata), -vv (About the same amout of info as with the old default UI) and -vvv (Everything, including debug information).
For feedback - positive and negative - regarding these chagnes, please use the discussion tab or open a new issue!
Added
- Add already_downloaded_list to download report
- Add
--fetch-albumfunctionality - Add lrclib as main lyrics source, youtube is fallback
- Add synced lyrics support (with lrclib as source)
- Add concurrent downloading functionality with user-editable download workers and queue size.
- Add completly new CLI UI which is more user-friendly.
- Add different verbosity flags:
-v,-vvand-vvv - Add
somedl import: Import songs downloaded with yt-dlp or aquired from other sources into a set folder structure, while also updating the metadata. - Add
somedl new-template: Utility to automatically move your library into a new storeage template.
Changed
- Refactor album check to metadata_album_check() function
- Reworked the download report
- Implement new clean_song_title function in utils
- Change genius input to song_title_clean over song_title
- Completely changed logging system to Python Rich based console printing.
- Switched to Syslog inspired log servity levels (0-7).
- The version check is only done once per 24 hours, the last check including version is added into somedl_version_cache.json in the SomeDL directory
Fixed
- Fix filename recognition for files with square brackets in them
- Include check for genius metadata
- Some minor tweaks that hopefully will improve the experience.
Removed
- Python Logging based logging. Will completely remove module in the future.
SomeDL - v1.2.1
[1.2.1] - 31.03.2026
Fixed
- Fixed bug in the version check cache that would wrongly alert about an update.
[1.2.0] - 31.03.2026
Overview
SomeDL 1.2.0 contains big changes to the entire codebase. The core metadata fetching process has been refactored to enable concurrent downloading. These changes also enable more modular reuse of certain parts of the code, allowing the implementation of new features without duplicating much code. Speaking of new features, this update includes a feature to download entrie albums of every input query with the --fetch-album flag, a utility to update your existing folder structure with somedl new-metadata, and a utitity to import songs aquired by other means, or to update metadata in your existing library with somedl import. This update also includes a complete UI rewrite, which was necessary for concurrent downloads. The new UI should be more user-friendy by hiding unnecessary information. Users that still want to see what is going on behind the scenes can change their logging level with the new flags -v (just minor warnings, like missing metadata), -vv (About the same amout of info as with the old default UI) and -vvv (Everything, including debug information).
For feedback - positive and negative - regarding these chagnes, please use the discussion tab or open a new issue!
Added
- Add already_downloaded_list to download report
- Add
--fetch-albumfunctionality - Add lrclib as main lyrics source, youtube is fallback
- Add synced lyrics support (with lrclib as source)
- Add concurrent downloading functionality with user-editable download workers and queue size.
- Add completly new CLI UI which is more user-friendly.
- Add different verbosity flags:
-v,-vvand-vvv - Add
somedl import: Import songs downloaded with yt-dlp or aquired from other sources into a set folder structure, while also updating the metadata. - Add
somedl new-template: Utility to automatically move your library into a new storeage template.
Changed
- Refactor album check to metadata_album_check() function
- Reworked the download report
- Implement new clean_song_title function in utils
- Change genius input to song_title_clean over song_title
- Completely changed logging system to Python Rich based console printing.
- Switched to Syslog inspired log servity levels (0-7).
- The version check is only done once per 24 hours, the last check including version is added into somedl_version_cache.json in the SomeDL directory
Fixed
- Fix filename recognition for files with square brackets in them
- Include check for genius metadata
- Some minor tweaks that hopefully will improve the experience.
Removed
- Python Logging based logging. Will completely remove module in the future.
SomeDL - v1.2.0
[1.2.0] - 31.03.2026
Overview
SomeDL 1.2.0 contains big changes to the entire codebase. The core metadata fetching process has been refactored to enable concurrent downloading. These changes also enable more modular reuse of certain parts of the code, allowing the implementation of new features without duplicating much code. Speaking of new features, this update includes a feature to download entrie albums of every input query with the --fetch-album flag, a utility to update your existing folder structure with somedl new-metadata, and a utitity to import songs aquired by other means, or to update metadata in your existing library with somedl import. This update also includes a complete UI rewrite, which was necessary for concurrent downloads. The new UI should be more user-friendy by hiding unnecessary information. Users that still want to see what is going on behind the scenes can change their logging level with the new flags -v (just minor warnings, like missing metadata), -vv (About the same amout of info as with the old default UI) and -vvv (Everything, including debug information).
For feedback - positive and negative - regarding these chagnes, please use the discussion tab or open a new issue!
Added
- Add already_downloaded_list to download report
- Add
--fetch-albumfunctionality - Add lrclib as main lyrics source, youtube is fallback
- Add synced lyrics support (with lrclib as source)
- Add concurrent downloading functionality with user-editable download workers and queue size.
- Add completly new CLI UI which is more user-friendly.
- Add different verbosity flags:
-v,-vvand-vvv - Add
somedl import: Import songs downloaded with yt-dlp or aquired from other sources into a set folder structure, while also updating the metadata. - Add
somedl new-template: Utility to automatically move your library into a new storeage template.
Changed
- Refactor album check to metadata_album_check() function
- Reworked the download report
- Implement new clean_song_title function in utils
- Change genius input to song_title_clean over song_title
- Completely changed logging system to Python Rich based console printing.
- Switched to Syslog inspired log servity levels (0-7).
- The version check is only done once per 24 hours, the last check including version is added into somedl_version_cache.json in the SomeDL directory
Fixed
- Fix filename recognition for files with square brackets in them
- Include check for genius metadata
- Some minor tweaks that hopefully will improve the experience.
Removed
- Python Logging based logging. Will completely remove module in the future.
SomeDL - v1.1.3
[1.1.3] - 17.03.2026
Changed
- When a URL contains both song (v=) and playlist (list=) IDs, now only the song is downloaded, not the whole list by default
- Added a user info prompt when this case appears.
- Why song only as default? For these types of URLs, its not always clear what the user preferes. Just downloading one song is less bad when its the wrong desicion than downloading the whole playlist would be.
- Add
--get-songand--get-playlistflags for the above change. - Add
prefer_playlistconfig (default false) - Changed
Song does already exist. Skipping downloadWarning to Info and colored green. Temporary until i implement a better return value.