slyyxp / rsack Goto Github PK
View Code? Open in Web Editor NEWRansack「rsack」is a lossless Korean music downloader
License: MIT License
Ransack「rsack」is a lossless Korean music downloader
License: MIT License
Support QQMusic
Since this project aims at Korean webstores it would be nice to have a README translation for Korean speakers.
My Korean is very basic so I cannot provide this at the quality I would like.
If anyone can provide this feel free to get in contact on this issue.
Requires additional GET to https://dn.genie.co.kr/app/purchase/get_msl.asp
Expand project to support Qobuz
Move all config and arguments documentation to https://github.com/Slyyxp/rsack/wiki
Exist checks are present but are only made after a lot of requests go out for relevant album/track information, this slows down completion time a lot.
Remove invalid characters from filenames and paths.
As of now this can only be used by the project internally.
Users should be allowed to authenticate and make calls for their own projects.
Look into https://www.music-flo.com/
Example case: https://genie.co.kr/detail/albumInfo?axnm=80733353
Currently maximum quality is downloaded by default.
Lyrics always returning untimed.
Tags need applied for track and disc totals.
Remote end closing connection without response.
Intermittent.
Look into https://www.melon.com/
Opt out of time lyrics in settings.ini
Requires some refactoring of the Download() class.
Clean up bugs module, it could use some love.
Refactor bugs client.
Constructing posts should more closely match the genie client for consistency.
Unavailable tracks are not skipped.
Hi, I have subscription which is only available for streaming. But I can't download song using your melon_client.py
What I found is
auth()
through kakao is not working. link kakao account to melon id. And login through https://member.melon.com/muid/mobile/login/login_login.jsonstreaming_path()
, It return mcache://smmd.melon.com/smartstream, not https://spmd.melon.com/prestreamHere is code!
Plan to fork and rewrite to suit this project.
https://music.bugs.co.kr/album/20452782?wl_ref=list_ab_03
Tracks without lyrics are not assigned resulting in them not being tagged.
Can't download album with long names in genie.
For example : Genie
Simple version check
Originally posted by kihyyo August 16, 2022
Currently gives only information of album.
In web I can see more detailed information of artist and also in app like who she or he is.
I need some help the way getting more detailed information of artist through https://app.genie.co.kr/???/j_ArtistInfo.json I guess.
And more detailed information of album If possible, Thanks
Traceback (most recent call last):
File "C:\Users\Cheek\AppData\Local\Programs\Python\Python39\Scripts\rsack-script.py", line 33, in <module>
sys.exit(load_entry_point('rsack==0.1.4', 'console_scripts', 'rsack')())
File "C:\Users\Cheek\AppData\Local\Programs\Python\Python39\lib\site-packages\rsack-0.1.4-py3.9.egg\rsack\main.py", line 25, in main
File "C:\Users\Cheek\AppData\Local\Programs\Python\Python39\lib\site-packages\rsack-0.1.4-py3.9.egg\rsack\bugs.py", line 36, in __init__
File "C:\Users\Cheek\AppData\Local\Programs\Python\Python39\lib\site-packages\rsack-0.1.4-py3.9.egg\rsack\bugs.py", line 69, in _album
File "C:\Users\Cheek\AppData\Local\Programs\Python\Python39\lib\site-packages\rsack-0.1.4-py3.9.egg\rsack\bugs.py", line 124, in _download_cover
FileNotFoundError: [Errno 2] No such file or directory: 'Z:\\Music\\Korean\\TREASURE(트레저)\\TREASURE(트레저) - THE SECOND STEP _ CHAPTER ONE \\cover.jpg'
API returns that there is FLAC present, yet it redirects to MP3.
This could be because of the streaming plan, it is unknown why.
Labels are actually not returned in the API response when requesting artist information.
They are present in the response as a NoneType, this means an additional request has to be done. Although slower it's necessary for all the information we need for tagging.
404 for tracks that are seemingly available.
Example: Tracks 1, 2, 18
https://genie.co.kr/detail/albumInfo?axnm=82844657
I'm already using the flac subscription. but download is only 320kbps.
how to download flac? Is there another command?
And what does "thread" mean?
thank u sir.
Look into vibe.naver
format_genie_lyrics()
is being called when there are no lyrics
Skip existing tracks, useful when batching or when a download fails.
Somebody as me, don't need artist_folders, maybe consider set a config like BugsPy to close?
Remove loguru dependency and improve output
Hi, I noticed that the script skips downloading songs that contain ?, : in their filename.
For example, when downloading this album https://music.bugs.co.kr/album/4041263?wl_ref=list_ab_03_ar, it appears like this:
C:\Users\x>rsack -b -u https://music.bugs.co.kr/album/4041263?wl_ref=li
st_ab_03_ar
2022-04-04 12:37:15.233 | INFO | rsack.clients.bugs:auth:26 - Login Successf
ul
2022-04-04 12:37:16.104 | INFO | rsack.bugs:_album:53 - Album: ? ??? ??? ??
???? (???? ??? X ?? (JOY))
2022-04-04 12:37:16.111 | DEBUG | rsack.bugs:album:67 - Creating C:\Users\x
\download?? (JOY) - ? ??? ??? ?? ??? (???? ??? X ?? (JOY))
2022-04-04 12:37:17.345 | INFO | rsack.bugs:_download_cover:130 - Cover artw
ork downloaded.
2022-04-04 12:37:17.358 | INFO | rsack.bugs:_album:76 - Threads: 1
2022-04-04 12:37:17.444 | DEBUG | rsack.bugs:_download:87 - Processing: 61041
67
2022-04-04 12:37:18.733 | DEBUG | rsack.bugs:_download:87 - Processing: 61041
68C:\Users\x>
Sorry for my English
song/j_ArtistAlbumList.json
responds with a maximum of 25 albums.
This needs to be increased for artist batching to have any real value.
I am not aware how to circumvent this at the time of writing.
One solution to obtaining the necessary album id's would be to scrape them although not ideal.
def get_artist(self, id):
"""Returns artist information
Args:
id (int): Artist UID
Returns:
[dict]: API Response containing artist information
"""
data = {
"uxtk": self.usr_token,
"sign": "Y",
"tct": "Android",
"svc": "IV",
"stk": self.stm_token,
"dcd": self.dev_id,
"xxnm": id,
"unm": self.usr_num,
"mts": "Y"
}
r = self.make_call("app", "song/j_ArtistAlbumList.json", data)
if r['Result']['RetCode'] != "0":
logger.critical("Failed to retrieve metadata")
return r
Expand project to support Tidal
The bug's metadata does not support label tags, showing blank,but BugsPy-master support
Add docstrings to functions with no documentation
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.