glomatico / gamdl Goto Github PK
View Code? Open in Web Editor NEWA Python CLI app for downloading Apple Music songs/music videos/albums/playlists/posts.
A Python CLI app for downloading Apple Music songs/music videos/albums/playlists/posts.
Hi, there's an issue I've encoutered when syncing the songs downloaded to my phone, where the album release time aren't displayed in the Music app. By checking tags using Mp3tag, I found that by adding a tag called iTunesPurchaseDate to each song, which uses the Greenwich Mean Time, the release date can be displayed properly. Here's the code I've added into gamdl.py
.
Add to import
:
import time
Add to tags
in get_tags_song
:
'purd': [(time.strftime('%Y-%m-%d %H:%M:%S', time.gmtime(time.time())))],
Also, if there's a need to get a higher-resolution cover art, simply change the line of covr
in tags
into
'covr': [MP4Cover(requests.get(artwork_url.replace('600x600bb.jpg', '3000x3000bb.jpg')).content, MP4Cover.FORMAT_JPEG)],
Pulled from the video tags part and altered the original resolution to fit.
btw, I just found that line 246 & 250 of tag playlistName
seems to be repetitive.
Happy New Year! x
Hello. Would it be possible to download songs in lossless format (ALAC)?
Thanks
Can you please tell me how to use this in termux ?
If it is available to use there ?
Some tracks on AM have timed lyrics that sync up with each word, with some emphasis on some words.
Is it possible to rip these, and have them in .LRC?
For reference, this is what I'm referring to, when I mean Enhanced LRC.
➜ python -m gamdl http://music.apple.com/ru/playlist/pl.u-55D6ZNlH6M8Y2AD
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "/home/gmanka/Documents/.venv/lib/python3.11/site-packages/gamdl/__main__.py", line 4, in <module>
main()
File "/home/gmanka/Documents/.venv/lib/python3.11/site-packages/gamdl/__init__.py", line 102, in main
dl = Gamdl(
^^^^^^
File "/home/gmanka/Documents/.venv/lib/python3.11/site-packages/gamdl/gamdl.py", line 42, in __init__
raise Exception(".wvd file not found")
Exception: .wvd file not found
i runned it in arch distrobox
For some reason while downloading videos files, output file only have video track decrypted but audio track is still encrypted. Seems like is due MP4Box that is not able to decrypt all the audio segments properly.
https://music.apple.com/id/music-video/secrets-from-a-girl-whos-seen-it-all/1614925583
THIS ONE DL AS Secrets from a Girl (Who's Seen it A
I GUESS IT HAS'NT REACH THE LIMIT
Hi,
I'm just using your scripts for downloading when all videos are fine which I really appreciate. However, when downloading songs, they are all double-lenghted, starting to play all over again when it ends the first time. I guess something wrong when combining the parts?
Thanks :)
I have an Apple Music playlist with 5000 songs but gamdl only downloads the first 100.
It's downloading in progress but fails when it is finished. -t and -f doesn't work. please help. Thanks!
hello,need help
Is there a way to remove(2023-01-01T08_00_00Z)T08_00_00Z after the date?
thx!!
Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/gamdl/cli.py", line 383, in main
webplayback = downloader.get_webplayback(track_id)
File "/usr/local/lib/python3.8/dist-packages/gamdl/downloader.py", line 195, in get_webplayback
return webplayback_response.json()["songList"][0]
KeyError: 'songList'
[INFO 16:59:42] Done (1 error(s))
Downloading "难念的经" (track 1/1 from URL 1/1)
Failed to download "难念的经" (track 1/1 from URL 1/1)
Done (1 error(s))
This error message is too little, I don't know where to find the reason.
Please can you help me?
can this run entirely on android? if so how, the readme doesn't provide me enough info and i don't know how to use python but will probably only use this once. thanks
Got some errors, please help to have a look, thanks
gamdl -e https://music.apple.com/jp/music-video/864844093
run gamdl https://music.apple.com/jp/playlist/%E5%85%A5%E9%96%80/pl.u-Ymb0vVPUgbqG8VW
I got an error:
[WARNING 11:41:32] mp4decrypt not found at "mp4decrypt", music videos videos will not be downloaded
[ERROR 11:41:33] (URL 1/1) Failed to check "https://music.apple.com/jp/playlist/%E5%85%A5%E9%96%80/pl.u-Ymb0vVPUgbqG8VW"
[INFO 11:41:33] Done (1 error(s))
Album, song, and official playlist(made from apple) are works fine.
could you please help? i have trouble downloading music.
PS C:\Users\Tszho Kong\Desktop\Apple Music\gamdl-1.9> gamdl https://music.apple.com/tr/album/up-in-flames/1440818807?i=1440818813
Traceback (most recent call last):
File "", line 198, in run_module_as_main
File "", line 88, in run_code
File "C:\Users\Tszho Kong\AppData\Local\Programs\Python\Python311\Scripts\gamdl.exe_main.py", line 7, in
File "C:\Users\Tszho Kong\AppData\Local\Programs\Python\Python311\Lib\site-packages\gamdl_init.py", line 113, in main
dl = Gamdl(
^^^^^^
File "C:\Users\Tszho Kong\AppData\Local\Programs\Python\Python311\Lib\site-packages\gamdl\gamdl.py", line 59, in init
index_js_uri = re.search('(?<=index.)(.*?)(?=.js")', web_page).group(1)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'group'
Can I write a downloaded check?ty
Line 87 in 8285c41
C:\Users\timo\Downloads\gamdl-main\gamdl-main>python gamdl https://music.apple.com/us/album/endless-summer-vacation/1663973555
Traceback (most recent call last):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2800.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.10_3.10.2800.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 86, in run_code
exec(code, run_globals)
File "C:\Users\timo\Downloads\gamdl-main\gamdl-main\gamdl_main.py", line 1, in
import gamdl
File "C:\Users\timo\Downloads\gamdl-main\gamdl-main\gamdl\gamdl.py", line 11, in
import gamdl.storefront_ids
ModuleNotFoundError: No module named 'gamdl.storefront_ids'; 'gamdl' is not a package
UPDATE: I downgraded (I believe) my version of protobuf and this is the response I am now getting:
Traceback (most recent call last):
File "/Users/dumper-main/dump_keys.py", line 14, in
device = frida.get_usb_device()
^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/frida/init.py", line 137, in get_usb_device
return get_device_manager().get_usb_device(timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/frida/core.py", line 1178, in get_usb_device
return self.get_device_matching(lambda d: d.type == "usb", timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/frida/core.py", line 86, in wrapper
return f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/frida/core.py", line 1201, in get_device_matching
return Device(self._impl.get_device_matching(lambda d: predicate(Device(d)), raw_timeout))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
frida.InvalidArgumentError: device not found
I had trouble with "cookies.txt" missing, then ffmpeg missing (because of permissions) but now I'm getting .wvd file not found at "device.wvd".
I'm using a macbook, I don't have any android devices. Is there a work around? I also read somewhere that as of May 2021, Google patched the Widevine decryptor, does that mean this isn't possible anymore?
also when I tried to use Dumper with mac terminal, I received the following response:
Hi, I ran the script and received the following response, Can you tell me what it means/what went wrong and how to resolve, Thanks:
Ryans-MBP:dumper-main python3 dump_keys.py
Traceback (most recent call last):
File "/Users/dumper-main/dump_keys.py", line 6, in
from Helpers.Scanner import Scan
File "/Users/dumper-main/Helpers/Scanner.py", line 7, in
from Helpers.wv_proto2_pb2 import SignedLicenseRequest
File "/Users/dumper-main/Helpers/wv_proto2_pb2.py", line 33, in
_descriptor.EnumValueDescriptor(
File "/Library/Frameworks/Python.framework/Versions/3.12/lib/python3.12/site-packages/google/protobuf/descriptor.py", line 789, in new
_message.Message._CheckCalledFromGeneratedFile()
TypeError: Descriptors cannot be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
If you cannot immediately regenerate your protos, some other possible workarounds are:
More information: https://developers.google.com/protocol-buffers/docs/news/2022-05-06#python-updates
SOMETIMES RANDOM VIDEOS WILL FAIL, LIKE
https://music.apple.com/id/music-video/in-the-afternoon/1491273488
https://music.apple.com/id/music-video/when-you-die/1324749216
https://music.apple.com/id/music-video/happier-than-ever/1578991894
prob not a internet issue, this happens to specific videos
For areas where the network is unstable, output the download error link to a text document, and then download the error link again after the download is completed. It is a very good function.
sometimes videos will be corrupted due to glitchy network.
I tried ffmpeg to detect it but failed. It seems just like a complete file and impossible to tell.
When I try to download some albums (like this https://music.apple.com/us/album/living-with-the-past-live-2001/1594357526) I encounter with this error, seems like script can fetch music_metadata.
Hello,
Thank you very much for the application. I have followed the steps for its installation and configuration, but this error is generated when I try to download any content (song, album, etc.)
gamdl https://music.apple.com/es/album/suburbia-remastered/709434153?i=709434468 -e -t C:\Users\Manu\Downloads\temp -f C:\Users\Manu\Downloads\AppleMusic
Downloading "Suburbia (Remastered)" (track 1/1 from URL 1/1)
Failed to download "Suburbia (Remastered)" (track 1/1 from URL 1/1)
Traceback (most recent call last):
File "c:\users\manu\appdata\local\programs\python\python37\lib\site-packages\gamdl_init_.py", line 171, in main
dl.decrypt(encrypted_location, decrypted_location, decryption_keys)
File "c:\users\manu\appdata\local\programs\python\python37\lib\site-packages\gamdl\gamdl.py", line 190, in decrypt
check=True
File "c:\users\manu\appdata\local\programs\python\python37\lib\subprocess.py", line 488, in run
with Popen(*popenargs, **kwargs) as process:
File "c:\users\manu\appdata\local\programs\python\python37\lib\subprocess.py", line 800, in init
restore_signals, start_new_session)
File "c:\users\manu\appdata\local\programs\python\python37\lib\subprocess.py", line 1148, in _execute_child
args = list2cmdline(args)
File "c:\users\manu\appdata\local\programs\python\python37\lib\subprocess.py", line 555, in list2cmdline
needquote = (" " in arg) or ("\t" in arg) or not arg
TypeError: argument of type 'WindowsPath' is not iterable
Done (1 error(s))
You can help me?. Thank you so much. A greeting.
Hi! I have moved to a new PC and had to reinstall everything including gamdl (which I used without problems in the past).
I did everything as required but when I try to launch gamdl, I receive the following errors:
C:\Users\Valentin>gamdl
Traceback (most recent call last):
File "c:\users\valentin\appdata\local\programs\python\python37\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "c:\users\valentin\appdata\local\programs\python\python37\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "C:\Users\Valentin\AppData\Local\Programs\Python\Python37\Scripts\gamdl.exe\__main__.py", line 4, in <module>
File "c:\users\valentin\appdata\local\programs\python\python37\lib\site-packages\gamdl\cli.py", line 11, in <module>
from .downloader import Downloader
File "c:\users\valentin\appdata\local\programs\python\python37\lib\site-packages\gamdl\downloader.py", line 17, in <module>
from pywidevine import PSSH, Cdm, Device, WidevinePsshData
ImportError: cannot import name 'WidevinePsshData' from 'pywidevine' (c:\users\valentin\appdata\local\programs\python\python37\lib\site-packages\pywidevine\__init__.py)
Thank you!
13957
Traceback (most recent call last):
File "C:\Users\Administrator\gamdl\gamdl.py", line 10, in
import gamdl.storefront_ids
File "C:\Users\Administrator\gamdl\gamdl.py", line 10, in
import gamdl.storefront_ids
ModuleNotFoundError: No module named 'gamdl.storefront_ids'; 'gamdl' is not a package
I've reinstall it, this is new, never happened in the last commit
Does anybody know why I would have this issue?
[INFO 12:35:54] (Track 1/1 from URL 1/1) Downloading "Track name"
[ERROR 12:35:55] (Track 1/1 from URL 1/1) Failed to download "Track name"
[INFO 12:35:55] Done (1 error(s))
can someone upload a valid wvd file. i tried to to make one but it requires root to my phone and my phone doesn't have any root that can be use.
Download complete, it prompts an error, does it not support the jp area?
gamdl -e https://music.apple.com/jp/music-video/28-reasons/1648400215
Downloading "28 Reasons" (track 1/1 from URL 1/1)
Failed to download "28 Reasons" (track 1/1 from URL 1/1)
Traceback (most recent call last):
File "C:\Python398\lib\site-packages\gamdl_init_.py", line 145, in main
tags = dl.get_tags_music_video(track['attributes']['url'].split('/')[-1])
File "C:\Python398\lib\site-packages\gamdl\gamdl.py", line 276, in get_tags_music_video
metadata = requests.get(f'https://itunes.apple.com/lookup?id={track_id}&entity=album&limit=200&country={self.country}&lang=en_US').json()['results']
KeyError: 'results'
Done (1 error(s))
seems this script doesn't handle url's with diacritics: "Failed to check URL 1/1"
would be grateful for a fix :)
Feature request for above
anyone know how Glomatico's ✨ Apple Music ✨ Downloader works? so far I have learned that it download the fragment and decrypt it, but does decrypting the file but does it convert the file to m4a afterwards? since that would be a lossy to lossy converting which will lower the music quality, I have tried downloading the same link of a song from there and compared it with a itune matched song, the audio stream are different. So it would be nice if someone could explain to me how it works and why the differences in audio stream.
gamdl https://music.apple.com/id/music-video/in-the-afternoon/1491273488
Failed to check URL 1/1
Done (1 error(s))
This shows at every music videos but on the songs it working fine
Traceback (most recent call last):
File "", line 198, in _run_module_as_main
File "", line 88, in run_code
File "C:\Users\Admin\Downloads\gamdl-1.9.1\gamdl-1.9.1\gamdl_main.py", line 1, in
import gamdl
File "C:\Users\Admin\Downloads\gamdl-1.9.1\gamdl-1.9.1\gamdl\gamdl.py", line 11, in
import gamdl.storefront_ids
ModuleNotFoundError: No module named 'gamdl.storefront_ids'; 'gamdl' is not a package
I'm new and having this problem
Is there a way to download videos that don't have "music-video" in the url? When I try to it says the url fails to check or that it's not downloadable using current settings. I don't know if there's a way around this. Here's a couple examples of what I'm talking about
https://music.apple.com/us/post/1706425487
https://music.apple.com/us/music-movie/taylor-swift-lyrics-that-hook-you/1480458035
They both have videos in the link so I'm not sure why they don't download.
gamdl "https://music.apple.com/us/album/never-gonna-give-you-up-2022-remaster/1626265761?i=1626265765"
i tried it, but when it completed download, it just have below error which leads to corrupted file
gamdl "https://music.apple.com/us/album/never-gonna-give-you-up-2022-remaster/1626265761?i=1626265765"
[WARNING 08:37:51] mp4decrypt not found at "mp4decrypt", music videos videos will not be downloaded
[INFO 08:38:07] (Track 1/1 from URL 1/1) Downloading "Never Gonna Give You Up (2022 - Remaster)"
[aac @ 000001d1aef64c00] channel element 2.13 is not allocated
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001d1aef52bc0] Incorrect number of samples in encryption info
temp\1626265765_encrypted_audio.m4a: Invalid data found when processing input
[INFO 08:38:17] Done (0 error(s))
gamdl "https://music.apple.com/vn/album/part-1/1435767440?i=1435767442" --songs-heaac true
[ERROR 09:11:56] (URL 2/2) Failed to check "true"
[INFO 09:11:56] (Track 1/1 from URL 1/1) Downloading "Part 1"
[aac @ 000001b095364c00] decode_pce: Input buffer exhausted before END element found
[mov,mp4,m4a,3gp,3g2,mj2 @ 000001b095352bc0] Incorrect number of samples in encryption info
temp\1435767442_encrypted_audio.m4a: Invalid data found when processing input
[INFO 09:12:02] Done (1 error(s))
显示
INFO:root:pywidevine version 1.5.3 Copyright (c) 2022-2023 rlaphoenix
INFO:root:https://github.com/rlaphoenix/pywidevine
Usage: pywidevine create-device [OPTIONS]
Try 'pywidevine create-device --help' for help.
Error: key: Not a path to a file, or it doesn't exist.
但我已将其添加至PATH
Running gamdl again redownloads everything instead of just missing or incomplete files.
spotify_aac_downloader.py", line 11, in
from pywidevine.L3.cdm.cdm import Cdm
ModuleNotFoundError: No module named 'pywidevine.L3'
I have put the wvd file in the directory. Or prompt an error?
please help,thx
Traceback (most recent call last):
File "C:\Python398\lib\runpy.py", line 197, in _run_module_as_main
return run_code(code, main_globals, None,
File "C:\Python398\lib\runpy.py", line 87, in run_code
exec(code, run_globals)
File "C:\Python398\Scripts\gamdl.exe_main.py", line 7, in
File "C:\Python398\lib\site-packages\gamdl_init.py", line 101, in main
dl = Gamdl(
File "C:\Python398\lib\site-packages\gamdl\gamdl.py", line 32, in init
raise Exception('.wvd file not found')
Exception: .wvd file not found
HEY DUDE...CONGRATULATIONSSSSSSSSS FOR THIS AMAZING PROJECT...BUT PLEASE CAN YOU HELP ME HOW TO RUN IT?AND TELL ME PLEASE I NEED ITUNES PREMIUM ACOUNT?
Whenever i run the command i get this error
gamdl "https://music.apple.com/us/album/whenever-you-need-somebody-2022-remaster/1626265761"
[INFO 11:24:31] Downloading "Never Gonna Give You Up (2022 - Remaster)" (track 1/10 from URL 1/1)
[ERROR 11:24:32] Failed to download "Never Gonna Give You Up (2022 - Remaster)" (track 1/10 from URL 1/1)
[INFO 11:24:32] Downloading "Whenever You Need Somebody (2022 - Remaster)" (track 2/10 from URL 1/1)
[ERROR 11:24:33] Failed to download "Whenever You Need Somebody (2022 - Remaster)" (track 2/10 from URL 1/1)
[INFO 11:24:33] Downloading "Together Forever (2022 - Remaster)" (track 3/10 from URL 1/1)
[ERROR 11:24:33] Failed to download "Together Forever (2022 - Remaster)" (track 3/10 from URL 1/1)
[INFO 11:24:33] Downloading "It Would Take a Strong Strong Man (2022 - Remaster)" (track 4/10 from URL 1/1)
[ERROR 11:24:34] Failed to download "It Would Take a Strong Strong Man (2022 - Remaster)" (track 4/10 from URL 1/1)
[INFO 11:24:34] Downloading "The Love Has Gone (2022 - Remaster)" (track 5/10 from URL 1/1)
[ERROR 11:24:35] Failed to download "The Love Has Gone (2022 - Remaster)" (track 5/10 from URL 1/1)
[INFO 11:24:35] Downloading "Don't Say Goodbye (2022 - Remaster)" (track 6/10 from URL 1/1)
[ERROR 11:24:35] Failed to download "Don't Say Goodbye (2022 - Remaster)" (track 6/10 from URL 1/1)
[INFO 11:24:35] Downloading "Slipping Away (2022 - Remaster)" (track 7/10 from URL 1/1)
[ERROR 11:24:36] Failed to download "Slipping Away (2022 - Remaster)" (track 7/10 from URL 1/1)
[INFO 11:24:36] Downloading "No More Looking for Love (2022 - Remaster)" (track 8/10 from URL 1/1)
[ERROR 11:24:36] Failed to download "No More Looking for Love (2022 - Remaster)" (track 8/10 from URL 1/1)
[INFO 11:24:36] Downloading "You Move Me (2022 - Remaster)" (track 9/10 from URL 1/1)
[ERROR 11:24:37] Failed to download "You Move Me (2022 - Remaster)" (track 9/10 from URL 1/1)
[INFO 11:24:37] Downloading "When I Fall in Love (2022 - Remaster)" (track 10/10 from URL 1/1)
[ERROR 11:24:37] Failed to download "When I Fall in Love (2022 - Remaster)" (track 10/10 from URL 1/1)
[INFO 11:24:37] Done (10 error(s))
I subscribed to apple music, and re-exported cookies, but the download was difficult to succeed, and an error was thrown at any time. Is there anything else that needs special attention? Sometimes I can see the download reaches 100%, and then it prompts that the download failed.
PS D:\Portable Soft\Downloads> gamdl https://music.apple.com/cn/album/%E9%9A%BE%E5%BF%B5%E7%9A%84%E7%BB%8F/1072048491?i=1072048505
Downloading "难念的经" (track 1/1 from URL 1/1)
[download] Got error: <urlopen error EOF occurred in violation of protocol (_ssl.c:992)>
[download] Got error: <urlopen error EOF occurred in violation of protocol (_ssl.c:992)>
[download] 86.7% of ~ 9.53MiB at 264.14KiB/s ETA 00:09 (frag 26/30)
Failed to download "难念的经" (track 1/1 from URL 1/1)
Done (1 error(s))
PS D:\Portable Soft\Downloads> gamdl https://music.apple.com/cn/album/%E9%9A%BE%E5%BF%B5%E7%9A%84%E7%BB%8F/1072048491?i=1072048505
Downloading "难念的经" (track 1/1 from URL 1/1)
ERROR: [generic] None: Unable to download webpage: The read operation timed out (caused by TimeoutError('The read operation timed out')); please report this issue on https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriateissue template. Confirm you are on the latest version using yt-dlp -U
Failed to download "难念的经" (track 1/1 from URL 1/1)
Done (1 error(s))
PS D:\Portable Soft\Downloads> gamdl https://music.apple.com/cn/album/%E9%9A%BE%E5%BF%B5%E7%9A%84%E7%BB%8F/1072048491?i=1072048505
Downloading "难念的经" (track 1/1 from URL 1/1)
Failed to download "难念的经" (track 1/1 from URL 1/1)
Done (1 error(s))
PS D:\Portable Soft\Downloads> gamdl https://music.apple.com/us/album/%E8%8A%B1%E5%BF%83/151290612?uo=4
Traceback (most recent call last):
File "C:\Users\alway\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 700, in urlopen
self._prepare_proxy(conn)
File "C:\Users\alway\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 996, in prepare_proxy
conn.connect()
File "C:\Users\alway\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connection.py", line 414, in connect
self.sock = ssl_wrap_socket(
^^^^^^^^^^^^^^^^
File "C:\Users\alway\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\ssl.py", line 449, in ssl_wrap_socket
ssl_sock = ssl_wrap_socket_impl(
^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alway\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\ssl.py", line 493, in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alway\AppData\Local\Programs\Python\Python311\Lib\ssl.py", line 517, in wrap_socket
return self.sslsocket_class._create(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alway\AppData\Local\Programs\Python\Python311\Lib\ssl.py", line 1075, in _create
self.do_handshake()
File "C:\Users\alway\AppData\Local\Programs\Python\Python311\Lib\ssl.py", line 1346, in do_handshake
self._sslobj.do_handshake()
ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:992)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\alway\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\adapters.py", line 489, in send
resp = conn.urlopen(
^^^^^^^^^^^^^
File "C:\Users\alway\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\connectionpool.py", line 787, in urlopen
retries = retries.increment(
^^^^^^^^^^^^^^^^^^
File "C:\Users\alway\AppData\Local\Programs\Python\Python311\Lib\site-packages\urllib3\util\retry.py", line 592, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='beta.music.apple.com', port=443): Max retries exceeded withurl: / (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:992)')))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "", line 198, in run_module_as_main
File "", line 88, in run_code
File "C:\Users\alway\AppData\Local\Programs\Python\Python311\Scripts\gamdl.exe_main.py", line 7, in
File "C:\Users\alway\AppData\Local\Programs\Python\Python311\Lib\site-packages\gamdl_init.py", line 107, in main
dl = Gamdl(
^^^^^^
File "C:\Users\alway\AppData\Local\Programs\Python\Python311\Lib\site-packages\gamdl\gamdl.py", line 52, in init
web_page = self.session.get('https://beta.music.apple.com').text
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alway\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", line 600, in get
return self.request("GET", url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alway\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", line 587, in request
resp = self.send(prep, **send_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alway\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\sessions.py", line 701, in send
r = adapter.send(request, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\alway\AppData\Local\Programs\Python\Python311\Lib\site-packages\requests\adapters.py", line 563, in send
raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='beta.music.apple.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLEOFError(8, 'EOF occurred in violation of protocol (_ssl.c:992)')))
PS D:\Portable Soft\Downloads> gamdl https://music.apple.com/cn/album/%E9%9A%BE%E5%BF%B5%E7%9A%84%E7%BB%8F/1072048491?i=1072048505
Downloading "难念的经" (track 1/1 from URL 1/1)
Failed to download "难念的经" (track 1/1 from URL 1/1)
Done (1 error(s))
PS D:\Portable Soft\Downloads> gamdl https://music.apple.com/cn/album/%E6%9C%89%E6%B2%A1%E6%9C%89%E4%B8%80%E9%A6%96%E6%AD%8C%E4%BC%9A%E8%AE%A9%E4%BD%A0%E6%83%B3%E8%B5%B7%E6%88%91/151212454?i=151212668
Downloading "有没有一首歌会让你想起我" (track 1/1 from URL 1/1)
Failed to download "有没有一首歌会让你想起我" (track 1/1 from URL 1/1)
Done (1 error(s))
regular download is ok.
but aira2 gives errors:
[DL:0B][#56ca3e 0B/0B][#e3a4e6 0B/0B][#8b8bb4 0B/0B][#12cedb 0B/0B]#695df7 0B/0B
01/27 23:45:05 [ERROR] CUID#12 - Download aborted. URI=https://mvod.itunes.apple.com/itunes-assets/HLSVideo124/v4/50/fc/7e/50fc7e99-9886-b2d8-5afb-13d93e415288/P231676897_A1356863152_MV_en_audio_gr256-5.mp4
Exception: [AbstractCommand.cc:351] errorCode=19 URI=https://mvod.itunes.apple.com/itunes-assets/HLSVideo124/v4/50/fc/7e/50fc7e99-9886-b2d8-5afb-13d93e415288/P231676897_A1356863152_MV_en_audio_gr256-5.mp4
-> [AbstractCommand.cc:792] errorCode=19 CUID#12 - Name resolution for mvod.itunes.apple.com failed:Timeout while contacting DNS servers
gamdl
Traceback (most recent call last):
File "", line 198, in run_module_as_main
File "", line 88, in run_code
File "C:\Users\timo\AppData\Local\Programs\Python\Python311\Scripts\gamdl.exe_main.py", line 7, in
File "C:\Users\timo\AppData\Local\Programs\Python\Python311\Lib\site-packages\gamdl_init.py", line 11, in main
raise Exception('mp4decrypt is not on PATH')
Exception: mp4decrypt is not on PATH
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.