Skip to content

Releases: ChemistryGull/SomeDL

SomeDL - v1.5.0

Choose a tag to compare

@ChemistryGull ChemistryGull released this 31 May 15:17
99075a5

[1.5.0] - 31.05.2026

BIG new feature update - SomeDL now finally has a WebUI! Its features are listed below. :)

Added

  • Add WebUI
    • Downloading from a GUI in the browser.
    • Searching for songs directly in the application in a YouTube Music like interface.
    • Searching for concert setlists of bands and artists.
    • View download history (per session)
    • Change settings directly from the WebUI
    • Theme the SomeDL WebUI to your liking
  • Add ID system to keep track of which download is which (for the web ui). The ID is generated for each entry in generateSongList() (and fetch_albums() if thats enabled). The ID is a string of numbers, consisting of a timestamp + a 6 digit counter (increasing for every song in a request). Changed console.active_items keys to this ID, set the label as text property and put the status in data.

Changed

  • Add 30s timeouts to deezer and cover art requests
  • Add single retry to cover art request
  • Instead of skipping a download if its present in metadata_list, only skip download if song is currently being processed (checkes if same label is in console.active_items). This makes it possible to redownload a song from the web UI when the file is deleted. If a song is present in on the filesystem, download is skipped as always. This is neccessary to avoid yt-dlp errors (trying to write the same file)

SomeDL - v1.4.0

Choose a tag to compare

@ChemistryGull ChemistryGull released this 14 May 15:30

[1.4.0] - 14.05.2026

Several small feature additions.

Added

  • Add album_cover_size option 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 --range flag 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 sync without a sync file name.

Fixed

  • Change artist downloading mechanism to incorporate newest changes in the ytmusicapi (sigma67/ytmusicapi#899)

SomeDL - v1.3.3

Choose a tag to compare

@ChemistryGull ChemistryGull released this 18 Apr 19:55

[1.3.3] - 18.04.2026

Added

  • Add cache for the ytmusicapi get_album call. 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

Choose a tag to compare

@ChemistryGull ChemistryGull released this 14 Apr 21:55

[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-album flag to override the above config setting
  • Add download archive feature. Define a download archive file with --downlaod archive /path/to/archive.txt or by changing the download_archive config. 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 --redownload flag 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_exists config and corresponding --skip-file-check flag 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-metadata functionality. 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

Choose a tag to compare

@ChemistryGull ChemistryGull released this 12 Apr 20:22

[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-album flag to override the above config setting
  • Add download archive feature. Define a download archive file with --downlaod archive /path/to/archive.txt or by changing the download_archive config. 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 --redownload flag 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_exists config and corresponding --skip-file-check flag 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-metadata functionality. 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

Choose a tag to compare

@ChemistryGull ChemistryGull released this 09 Apr 15:08

[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_file is set false

[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-album functionality
  • 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, -vv and -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

Choose a tag to compare

@ChemistryGull ChemistryGull released this 31 Mar 15:29

[1.2.3] - 31.03.2026

Fixed

  • Fixed issue where it would always download .lrc file, even if lrc_file is set false

[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-album functionality
  • 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, -vv and -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

Choose a tag to compare

@ChemistryGull ChemistryGull released this 31 Mar 14:29

[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-album functionality
  • 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, -vv and -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

Choose a tag to compare

@ChemistryGull ChemistryGull released this 31 Mar 12:05

[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-album functionality
  • 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, -vv and -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

Choose a tag to compare

@ChemistryGull ChemistryGull released this 31 Mar 11:49

[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-album functionality
  • 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, -vv and -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.