Giter Site home page Giter Site logo

qobuz-dl's Introduction

qobuz-dl

Search, explore and download Lossless and Hi-Res music from Qobuz. Donate

Features

  • Download FLAC and MP3 files from Qobuz
  • Explore and download music directly from your terminal with interactive or lucky mode
  • Download albums, tracks, artists, playlists and labels with download mode
  • Download music from last.fm playlists (Spotify, Apple Music and Youtube playlists are also supported through this method)
  • Queue support on interactive mode
  • Effective duplicate handling with own portable database
  • Support for albums with multiple discs
  • Support for M3U playlists
  • Downloads URLs from text file
  • Extended tags
  • And more

Getting started

You'll need an active subscription

Install qobuz-dl with pip

Linux / MAC OS
pip3 install --upgrade qobuz-dl
Windows
pip3 install windows-curses
pip3 install --upgrade qobuz-dl

Run qobuz-dl and enter your credentials

Linux / MAC OS
qobuz-dl
Windows
qobuz-dl.exe

If something fails, run qobuz-dl -r to reset your config file.

Examples

Download mode

Download URL in 24B<96khz quality

qobuz-dl dl https://play.qobuz.com/album/qxjbxh1dc3xyb -q 7

Download multiple URLs to custom directory

qobuz-dl dl https://play.qobuz.com/artist/2038380 https://play.qobuz.com/album/ip8qjy1m6dakc -d "Some pop from 2020"

Download multiple URLs from text file

qobuz-dl dl this_txt_file_has_urls.txt

Download albums from a label and also embed cover art images into the downloaded files

qobuz-dl dl https://play.qobuz.com/label/7526 --embed-art

Download a Qobuz playlist in maximum quality

qobuz-dl dl https://play.qobuz.com/playlist/5388296 -q 27

Download all the music from an artist except singles, EPs and VA releases

qobuz-dl dl https://play.qobuz.com/artist/2528676 --albums-only

Last.fm playlists

Last.fm has a new feature for creating playlists: you can create your own based on the music you listen to or you can import one from popular streaming services like Spotify, Apple Music and Youtube. Visit: https://www.last.fm/user/<your profile>/playlists (e.g. https://www.last.fm/user/vitiko98/playlists) to get started.

Download a last.fm playlist in the maximum quality

qobuz-dl dl https://www.last.fm/user/vitiko98/playlists/11887574 -q 27

Run qobuz-dl dl --help for more info.

Interactive mode

Run interactive mode with a limit of 10 results

qobuz-dl fun -l 10

Type your search query

Logging...
Logged: OK
Membership: Studio


Enter your search: [Ctrl + c to quit]
- fka twigs magdalene

qobuz-dl will bring up a nice list of releases. Now choose whatever releases you want to download (everything else is interactive).

Run qobuz-dl fun --help for more info.

Lucky mode

Download the first album result

qobuz-dl lucky playboi carti die lit

Download the first 5 artist results

qobuz-dl lucky joy division -n 5 --type artist

Download the first 3 track results in 320 quality

qobuz-dl lucky eric dolphy remastered --type track -n 3 -q 5

Download the first track result without cover art

qobuz-dl lucky jay z story of oj --type track --no-cover

Run qobuz-dl lucky --help for more info.

Other

Reset your config file

qobuz-dl -r

By default, qobuz-dl will skip already downloaded items by ID with the message This release ID ({item_id}) was already downloaded. To avoid this check, add the flag --no-db at the end of a command. In extreme cases (e.g. lost collection), you can run qobuz-dl -p to completely reset the database.

Usage

usage: qobuz-dl [-h] [-r] {fun,dl,lucky} ...

The ultimate Qobuz music downloader.
See usage examples on https://github.com/vitiko98/qobuz-dl

optional arguments:
  -h, --help      show this help message and exit
  -r, --reset     create/reset config file
  -p, --purge     purge/delete downloaded-IDs database

commands:
  run qobuz-dl <command> --help for more info
  (e.g. qobuz-dl fun --help)

  {fun,dl,lucky}
    fun           interactive mode
    dl            input mode
    lucky         lucky mode

Module usage

Using qobuz-dl as a module is really easy. Basically, the only thing you need is QobuzDL from core.

import logging
from qobuz_dl.core import QobuzDL

logging.basicConfig(level=logging.INFO)

email = "[email protected]"
password = "your_password"

qobuz = QobuzDL()
qobuz.get_tokens() # get 'app_id' and 'secrets' attrs
qobuz.initialize_client(email, password, qobuz.app_id, qobuz.secrets)

qobuz.handle_url("https://play.qobuz.com/album/va4j3hdlwaubc")

Attributes, methods and parameters have been named as self-explanatory as possible.

A note about Qo-DL

qobuz-dl is inspired in the discontinued Qo-DL-Reborn. This tool uses two modules from Qo-DL: qopy and spoofer, both written by Sorrow446 and DashLt.

Disclaimer

  • This tool was written for educational purposes. I will not be responsible if you use this program in bad faith. By using it, you are accepting the Qobuz API Terms of Use.
  • qobuz-dl is not affiliated with Qobuz

qobuz-dl's People

Contributors

fc7 avatar ktcar214 avatar marekromk avatar nathom avatar qwerzl avatar steve-o-matic avatar theden avatar vitiko98 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qobuz-dl's Issues

Cover Artwork in original resolution

Hello, there is a way to embed the artwork of any album in the original resolution and not in 600x600?
Only thing I know is that you can get the original resolution taking the url of any Qobuz album cover, for example,"cover_600.jpg" and changing it to "cover_org.jpg".
Is there anything you can do with that information for getting the original cover resolution with qobuz-dl?

Suggestion: auto-download all albums by an artist

When I search for an artist, I get at most 10 albums listed (along with 10 tracks below it)
However there's no way to tell how many albums that artist actually has

Is there a way to enter an artist's name, and have it automatically download all albums by that artist?

Need help

I cannot get qo-dl yo run on windows 10. I followed the steps from the how to but no luck. Can some post some easy steps to get the tool to run on windows 10? Thanks

Fail gracefully when qobuz fails

Traceback (most recent call last):
File "/.local/bin/qobuz-dl", line 10, in
sys.exit(main())
File "/.local/lib/python3.9/site-packages/qobuz_dl/cli.py", line 101, in main
qobuz.interactive()
File "/.local/lib/python3.9/site-packages/qobuz_dl/core.py", line 322, in interactive
self.download_list_of_urls(final_url_list)
File "/.local/lib/python3.9/site-packages/qobuz_dl/core.py", line 152, in download_list_of_urls
self.handle_url(url)
File "/.local/lib/python3.9/site-packages/qobuz_dl/core.py", line 137, in handle_url
new_path,
File "/.local/lib/python3.9/site-packages/qobuz_dl/core.py", line 91, in download_from_id
self.ignore_singles_eps,
File "/.local/lib/python3.9/site-packages/qobuz_dl/downloader.py", line 227, in download_id_by_type
meta = client.get_track_meta(item_id)
File "/.local/lib/python3.9/site-packages/qobuz_dl/qopy.py", line 140, in get_track_meta
return self.api_call("track/get", id=id)
File "/.local/lib/python3.9/site-packages/qobuz_dl/qopy.py", line 108, in api_call
r.raise_for_status()
File "/usr/lib/python3/dist-packages/requests/models.py", line 940, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://www.qobuz.com/api.json/0.2/track/get?track_id=49129481

configparser.InterpolationSyntaxError

Getting the error below trying to enter my password or update my config using -r. Related I'm assuming to a % in my PW.

Traceback (most recent call last):

  File "\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)

  File "\runpy.py", line 85, in _run_code
    exec(code, run_globals)

  File "\Scripts\qobuz-dl.exe\__main__.py", line 9, in <module>

  File "\site-packages\qobuz_dl\cli.py", line 255, in main
    password = config["DEFAULT"]["password"]

  File "\configparser.py", line 1252, in __getitem__
    return self._parser.get(self._name, key)

  File "\configparser.py", line 799, in get
    d)

  File "\configparser.py", line 394, in before_get
    self._interpolate_some(parser, option, L, value, section, defaults, 1)

 File "\configparser.py", line 444, in _interpolate_some
    "found: %r" % (rest,))

configparser.InterpolationSyntaxError: '%' must be followed by '%' or '(', found: [PW redacted]`

Older version (before the .exe) worked fine.

Option to skip single & ep, and "Various Artists" when downloading a specific artist

When downloading everything about an artist, it would be nice to have the possibility to skip single & EP.
Same thing with albums where the artist is present just in few tracks and not the whole album.

The idea is that, when downloading an artist, the folder contains only albums that starts with the artist name and it does not have any EPs & singles.

[REQ] Save files in separated folders when an album contains more than 1 CD

It would be nice to have the files saved in subfolders when an album contains more than 1 CD.
Specially because some albums have the same track name (in different version) on different CDs, and this cause the first file to be overwritten.

In addition, it would be nice to have an option that checks if a file already exists to avoid duplicated downloads (ex.: to resume the download of an album that was previously interrupted).

Skip comment.

Please add support "#" to the text files. In this way the tool skips the comment and it is possible to add personal notes without getting the error messages due to non-links.
Thank you.

Remove disc tag and others.

Please consider the following changes:

  1. Remove the "disc" entry (metadata) when the release is not composed of multiple discs, many releases are only EPs, singles, etc.;
  2. Add the artist name to each file after the track number because many releases are compilations or many tracks are collaborations between different artists, so know the artist name without having to check the metadata or with an audio player;
  3. Add the day of publications (metadata) in "date" along with the year or revert to "year" by adding "date";
  4. Add "Label" tag in metadata;
  5. Replace the entry "FLAC", "Hi-Res", etc. with the actual bits/kHz; please consider replacing square brackets with round brackets to the year;
  6. Improve track names, some information is not added. Example: https://play.qobuz.com/album/p39tju9ljy8ra "(Acoustic Bossa Version)" is missing.

Thank you.

Disc number in ID3 metadata

I was just listening to a multi-cd box and even though the folder names are perfect, the disc is not in the metadata. This appears to be a regression as I am almost sure this was working previously.

Playlist m3u for playlist download - enhancement

Would it be possible to create a relative path M3U file for each playlist when they are downloaded?
I have written a hacky thing for myself, but it would be nice if the software did it by itself automatically.

Work field on albums

Thanks for your speedy work on this!
I was just trying the new version of your software and I don't seem to have the information in the tags (tested with both FLAC and MP3).

From the example album, the first track now reads : 1. Allegro molto moderato (None) and doesn't mention "Fantasy in F minor, D. 940 (Op.103) for piano duet (Franz Schubert)" anywhere on the track.

Originally posted by @steve-o-matic in #18 (comment)

Same following errors occurs several times since updated to latest version

Hi ,the following errors information shows several times on different albums downloading :

eg: https://play.qobuz.com/album/0002894743832

Traceback (most recent call last):
File "/usr/local/bin/qobuz-dl", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/cli.py", line 139, in main
qobuz.download_list_of_urls(arguments.SOURCE)
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/core.py", line 180, in download_list_of_urls
self.download_from_txt_file(url)
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/core.py", line 199, in download_from_txt_file
self.download_list_of_urls(urls)
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/core.py", line 182, in download_list_of_urls
self.handle_url(url)
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/core.py", line 170, in handle_url
self.download_from_id(item_id, type_dict["album"])
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/core.py", line 108, in download_from_id
downloader.download_id_by_type(
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/downloader.py", line 248, in download_id_by_type
download_and_tag(
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/downloader.py", line 146, in download_and_tag
f'{artist if artist else track_metadata["album"]["artist"]["name"]}'
KeyError: 'album'

Still having problems with Qobuz 404

Logging...
Logged: OK
Membership: Studio
Set quality: 27 - 24B>96kHz

Ok, we'll search for playlists
Enter your search: [Ctrl + c to quit]

  • trojan
    Searching...
    Downloading all the music from ::Trojan Records:: Ska, Reggae, Rocksteady (and a few odds 'n ends) (playlist)!
    500 downloads in queue
    Traceback (most recent call last):
    File "/usr/local/bin/qobuz-dl", line 8, in
    sys.exit(main())
    File "/usr/local/lib/python3.9/site-packages/qobuz_dl/cli.py", line 116, in main
    qobuz.interactive()
    File "/usr/local/lib/python3.9/site-packages/qobuz_dl/core.py", line 337, in interactive
    self.download_list_of_urls(final_url_list)
    File "/usr/local/lib/python3.9/site-packages/qobuz_dl/core.py", line 169, in download_list_of_urls
    self.handle_url(url)
    File "/usr/local/lib/python3.9/site-packages/qobuz_dl/core.py", line 149, in handle_url
    self.download_from_id(
    File "/usr/local/lib/python3.9/site-packages/qobuz_dl/core.py", line 99, in download_from_id
    downloader.download_id_by_type(
    File "/usr/local/lib/python3.9/site-packages/qobuz_dl/downloader.py", line 260, in download_id_by_type
    meta = client.get_track_meta(item_id)
    File "/usr/local/lib/python3.9/site-packages/qobuz_dl/qopy.py", line 146, in get_track_meta
    return self.api_call("track/get", id=id)
    File "/usr/local/lib/python3.9/site-packages/qobuz_dl/qopy.py", line 114, in api_call
    r.raise_for_status()
    File "/usr/local/lib/python3.9/site-packages/requests/models.py", line 943, in raise_for_status
    raise HTTPError(http_error_msg, response=self)
    requests.exceptions.HTTPError: 404 Client Error: Not Found for url: https://www.qobuz.com/api.json/0.2/track/get?track_id=13592721

'Client' object has no attribute 'sec'

Downloading all the music from '80s Synth-Pop (playlist)!
50 downloads in queue
Traceback (most recent call last):
File "/usr/local/bin/qobuz-dl", line 8, in
sys.exit(main())
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/cli.py", line 116, in main
qobuz.interactive()
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/core.py", line 337, in interactive
self.download_list_of_urls(final_url_list)
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/core.py", line 169, in download_list_of_urls
self.handle_url(url)
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/core.py", line 149, in handle_url
self.download_from_id(
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/core.py", line 99, in download_from_id
downloader.download_id_by_type(
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/downloader.py", line 254, in download_id_by_type
parse = client.get_track_url(item_id, quality)
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/qopy.py", line 149, in get_track_url
return self.api_call("track/getFileUrl", id=id, fmt_id=fmt_id)
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/qopy.py", line 91, in api_call
fmt_id, track_id, unix, self.sec
AttributeError: 'Client' object has no attribute 'sec'

Hi-Res folder naming

This label seems to appear in all album folder names as high res even if they are CD quality. Maybe it is taking this from the command line options instead of the CDs themselves?

New releases.

Scenario: today I downloaded a whole small record label, on his facebook page I read that there will be 3 new releases next month.
.
Idea: the tool save a text file with all links of the downloaded releases today if add the argument, for example. "--dl-links", next month when I use the "download mode" with the link of the record label add the argument "--links" and the path text file. The tool compare the links contained in the text file and download the missing links.
_
Example: qobuz-dl dl -q 27 https://play.qobuz.com/label/124345 --links /path/of/your/file
It could be a good idea?

Can't download tracks with special characters.

When i try to download tracks that have special characters e.g: ร– or japanese characters, it throws this error

Traceback (most recent call last):
  File "/crypt/archive/music/qobuz-dl/venvdocker/bin/qobuz-dl", line 11, in <module>
    sys.exit(main())
  File "/crypt/archive/music/qobuz-dl/venvdocker/lib/python3.6/site-packages/qobuz_dl/cli.py", line 93, in main
    qobuz.download_list_of_urls(arguments.SOURCE)
  File "/crypt/archive/music/qobuz-dl/venvdocker/lib/python3.6/site-packages/qobuz_dl/core.py", line 152, in download_list_of_urls
    self.handle_url(url)
  File "/crypt/archive/music/qobuz-dl/venvdocker/lib/python3.6/site-packages/qobuz_dl/core.py", line 140, in handle_url
    self.download_from_id(item_id, type_dict["album"])
  File "/crypt/archive/music/qobuz-dl/venvdocker/lib/python3.6/site-packages/qobuz_dl/core.py", line 91, in download_from_id
    self.ignore_singles_eps,
  File "/crypt/archive/music/qobuz-dl/venvdocker/lib/python3.6/site-packages/qobuz_dl/downloader.py", line 229, in download_id_by_type
    print("\nDownloading: {}\n".format(track_title))
UnicodeEncodeError: 'ascii' codec can't encode characters in position 14-17: ordinal not in range(128)

I'm using the latest version.

[REQ] Handling different qualities

An option to download only the albums in the highest quality or both and save them in folders with the quality appended. Some artists have the same album twice but in different qualities and if an album is already downloaded it overwrites it even if the new one is in lower quality

Beautiful Soup missing from requirements?

Traceback (most recent call last):
File "/usr/local/bin/qobuz-dl", line 5, in
from qobuz_dl import main
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/init.py", line 2, in
from .cli import main
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/cli.py", line 7, in
from qobuz_dl.core import QobuzDL
File "/usr/local/lib/python3.9/site-packages/qobuz_dl/core.py", line 8, in
from bs4 import BeautifulSoup as bso
ModuleNotFoundError: No module named 'bs4'

crash

when searching "David Ian"

Cover Art

Hi there,
is there any chance to download the cover art in HQ? I noticed that the covers are downscaled by qobuz, you can see the string "_600.jpg" at the end of any image link for example. Maybe mitmproxy can help?
Thank you.

Skip upcoming releases.

Often the releases are added days or even weeks before the release date but obviously the tracks are not available so it would be useful for the tool to check the release date and skip the download and above all not mark the release as downloaded then adding the ID in the database.
Thank you so much.

Invalid Request Signature parameter

Just wanted to try this out, but unfortunately it doesnt work.
After entering credentials , its not possible to login.

Error during login: Invalid app secret.
Reset your credentials with 'qobuz-dl -r'.
Resetting doesnt help...

Futher analysis shows it is coming from qoby, there is a http 400 error for each request made.
Invalid Request Signature parameter (signature here)
Could be related to app_id or secrects I think?

Anything we can do?

Enhancement request - Ability to specify how to save an album and track list

Hi,

Is it possible to specify how to save an album and tracklist? Currently, it saves it as follows:

Artist Name - Album name (Year)
and tracks are saved as Track #.Artist Name - Track name

Would it be possible to specify how the folder name should be such as I currently have my music set up as
Artist name - Year - Album Name

And tracks are just Track # - Track name.

Maybe allow a tag format like --Folder name {Artist - Year - Album} --Track name {track # - Track name}.

I hope it makes sense, if not let me know.

Thank you for your work!!!

Management of different versions of the same album

Sometimes there are different versions of the same album.
For example, one version could be "clean" when another one could be "explicit".

As those albums have all the same name/year/quality/etc, they are stored in the same folder.

An example: "Madonna - Rebel Heart"
https://play.qobuz.com/album/0060254722641 - Clean version, 19 tracks
https://play.qobuz.com/album/0060254723453 - Mature version, 14 tracks
https://play.qobuz.com/album/0060254730346 - 6 tracks
https://play.qobuz.com/album/0060254724639 - Clean version, 14 tracks
https://play.qobuz.com/album/0060254726534 - Mature version, 25 tracks.

At the end you get everything in a single folder.
Not sure if this is intended or not, and how could be managed.
On way would be to add, on the folder name, the id of the album. Of course this would produce file duplicates and a waste of space & bandwidth, but would guarantee to have all tracks and to not mix different albums on the same folder.

Anyway, there is also the problem that some albums have different version of the same song on the same track number, resulting in missing some versions of the track.

This could be also "fixed" by implementing in the meantime a new feature, giving the possibility to configure the generated folder name & track name:
Something like "[{year_release}] [{quality}] {optional_tags} {album_name} [{album_id}]".
In this way the user can decide if store everything in the same folder or not, and how to organize the folder.
For example I prefer to have the year release at the beginning of the folder name.

Not skipping covers.

If the tool is aborted from the "Download mode" with multiple URLs (text file) at the next start it re-downloads the covers except for the audio files (skipping).

Add Total Disc and Disc Number to tags if available

I found on multi-disc sets while it does put in separate folders, the total disc and disc numbers are not in the tags.
So when renaming or organizing with Picard it puts all the tracks in the same folder. No a huge deal as I can recheck or manually fix, but just a thought. Tags show as totaldisc and discnumber.

doesn't work anymore

I've just updated qobuz-dl to the last release and it's now crashing, please see below
apologies if obvious but I have no clue
thanks

Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.9/bin/qobuz-dl", line 8, in
sys.exit(main())
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/qobuz_dl/cli.py", line 92, in main
password = base64.b64decode(config["DEFAULT"]["password"]).decode()
File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/base64.py", line 87, in b64decode
return binascii.a2b_base64(s)
binascii.Error: Invalid base64-encoded string: number of data characters (9) cannot be 1 more than a multiple of 4

Not an issue

Hi homie,

Thanks for your amazing work. I would like to know how can i contribuate u for yr time and yr skills?

Best Regards

Bavaria

error with Slashes in artist or album name

err message:

Traceback (most recent call last):
  File "main.py", line 125, in <module>
    sys.exit(main())
  File "main.py", line 119, in main
    interactive(Qz, directory, arguments.l, True)
  File "main.py", line 97, in interactive
    searchSelected(Qz, path, Albums, IDs, Types, quality)
  File "main.py", line 56, in searchSelected
    downloader.iterateIDs(Qz, id_[al[1]], path, quality, False)
  File "/home/username/proj/Qobuz-DL/qo_utils/downloader.py", line 88, in iterateIDs
    mkDir(dirn)
  File "/home/username/proj/Qobuz-DL/qo_utils/downloader.py", line 25, in mkDir
    os.mkdir(dirn)
FileNotFoundError: [Errno 2] No such file or directory: '/home/username/data/Music/qo/AC/DC - Back In Black [1980]'

Example album:
AC/DC - Back In Black
Kaleo - A/B

Only download Hi-Res and skip lower versions

Thanks for this as I found it by accident. Was using the one from Sorrow before they pulled it.
So far so good, but would there be a way to skip already downloaded songs. Like if I choose -q 27 it would only get the hi-res per the flag and skip the lower versions, but if needed also download the other versions that a hi-res isn't available.

If not no biggie as I can make a txt with what I would like. I just thought it would be nice to say pick and artist and let it get the highest quality and not have two copies one hi-res and one not.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.