#56 Bugfix: Fix api change of playlist, use v6 version.

This commit is contained in:
codezjx 2021-02-06 12:48:39 +08:00
parent 5c572751b7
commit 6f610e62f6
4 changed files with 13 additions and 6 deletions

View File

@ -91,7 +91,7 @@ class CloudApi(object):
"""
url = get_playlist_url(playlist_id)
result = self.get_request(url)
return result['result']['tracks'], result['result']['name']
return result['playlist']['trackIds'], result['playlist']['name']

View File

@ -31,4 +31,4 @@ def get_artist_url(artist_id):
def get_playlist_url(playlist_id):
return 'http://music.163.com/api/playlist/detail?id={}'.format(playlist_id)
return 'http://music.163.com/api/v6/playlist/detail?id={}'.format(playlist_id)

View File

@ -10,10 +10,15 @@ from ncm.file_util import add_metadata_to_song
from ncm.file_util import resize_img
def download_song_by_id(song_id, download_folder, sub_folder=True):
# get song info
def get_song_info_by_id(song_id):
api = CloudApi()
song = api.get_song(song_id)
return song
def download_song_by_id(song_id, download_folder, sub_folder=True):
# get song info
song = get_song_info_by_id(song_id)
download_song_by_song(song, download_folder, sub_folder)

View File

@ -5,6 +5,7 @@ import os
from urllib.parse import urlparse, parse_qs
from ncm import config
from ncm.api import CloudApi
from ncm.downloader import get_song_info_by_id
from ncm.downloader import download_song_by_id
from ncm.downloader import download_song_by_song
from ncm.downloader import format_string
@ -38,8 +39,9 @@ def download_playlist_songs(playlist_id):
folder_name = format_string(playlist_name) + ' - playlist'
folder_path = os.path.join(config.DOWNLOAD_DIR, folder_name)
for i, song in enumerate(songs):
print('{}: {}'.format(i + 1, song['name']))
download_song_by_song(song, folder_path, False)
song_detail = get_song_info_by_id(song['id'])
print('{}: {}'.format(i + 1, song_detail['name']))
download_song_by_song(song_detail, folder_path, False)
def get_parse_id(song_id):