下载前检测url是否有效,避免部分歌曲无法下载

This commit is contained in:
winloongLam 2017-01-24 23:54:54 +08:00
parent 015871dfa9
commit 701fce03ac

View File

@ -10,6 +10,7 @@ from json import loads
import hashlib import hashlib
import base64 import base64
import os import os
import requests
def netease_hymn(): def netease_hymn():
return """ return """
@ -111,13 +112,22 @@ def netease_song_download(song, output_dir='.', info_only=False, playlist_prefix
if 'hMusic' in song and song['hMusic'] != None: if 'hMusic' in song and song['hMusic'] != None:
url_best = make_url(songNet, song['hMusic']['dfsId']) url_best = make_url(songNet, song['hMusic']['dfsId'])
elif 'mp3Url' in song: status_code = requests.get(url_best).status_code
if status_code == 200:
netease_download_common(title, url_best, output_dir=output_dir, info_only=info_only)
return
if 'mp3Url' in song:
url_best = song['mp3Url'] url_best = song['mp3Url']
elif 'bMusic' in song: status_code = requests.get(url_best).status_code
if status_code == 200:
netease_download_common(title, url_best, output_dir=output_dir, info_only=info_only)
return
if 'bMusic' in song:
url_best = make_url(songNet, song['bMusic']['dfsId']) url_best = make_url(songNet, song['bMusic']['dfsId'])
status_code = requests.get(url_best).status_code
netease_download_common(title, url_best, if status_code == 200:
output_dir=output_dir, info_only=info_only) netease_download_common(title, url_best, output_dir=output_dir, info_only=info_only)
def netease_download_common(title, url_best, output_dir, info_only): def netease_download_common(title, url_best, output_dir, info_only):
songtype, ext, size = url_info(url_best) songtype, ext, size = url_info(url_best)