Giter Club home page Giter Club logo

musicdownload's Introduction

大纲

警告

收到了腾讯法务部的制裁大棒,正版音源倒卖狗的存在直接导致了本项目的死亡。

中文开源已死。

Alt text

通知

即日起删除涉及到受版权保护的疑似侵权代码,

本人在此声明:本人已经深刻认识到了自己的错误,代码是不懂事写着玩的,未收到任何人、任何组织发起的任何形式(包括但不仅限于电话、邮件、书面通知)的威胁、恐吓、索赔、警告、传唤,删除相关代码完全都是本人在自愿的前提下作出的决策,与任何人、任何组织没有任何联系,也从未受到任何人、任何组织的影响、暗示。一切行为完全出于自愿,未收到任何胁迫、恐吓。

我是Zer0,我们再也不见。删库我是自愿的,没有被电话威胁、恐吓、寄送过起诉通知。

介绍

Create & Design By Zer0


致谢

感谢所有项目的参与/贡献者,也感谢提出issues的各位用户。 最后这是我的tg聊天群 人少我不太爱说话 https://t.me/+u50LkfLuK8I1OGY1

musicdownload's People

Contributors

qiuchenly 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

musicdownload's Issues

QQ音乐杜比全景声?

据我所知目前只有apple music(自家设备)和QQ音乐(安卓端)提供了真正的5.1以上的多声道的设备端的杜比全景声文件
像国外Tidal Amazon之类的平台都是云端双耳渲染再下发到设备端,所以一些空间音频设备没法正确的识别到声道信息
请问一下是否有希望下载到QQ音乐杜比全景声文件呢?
7a6b168bb481b497a5f40086af945af5

歌曲名中有特殊字符导致保存失败

比如说要下载的的AmaLee - Hacking to the Gate (from "Steins;Gate")中间出现了;",有可能是这些中断了保存进程。

exception calling callback for <Future at 0x1cc885a5a20 state=finished raised OSError>
Traceback (most recent call last):
  File "C:\Program Files\Python310\lib\concurrent\futures\_base.py", line 329, in _invoke_callbacks
    callback(self)
  File "D:\server\paths\QQFlacMusicDownloader\web\App.py", line 87, in done
    ret = ret.result()
  File "C:\Program Files\Python310\lib\concurrent\futures\_base.py", line 438, in result
    return self.__get_result()
  File "C:\Program Files\Python310\lib\concurrent\futures\_base.py", line 390, in __get_result
    raise self._exception
  File "C:\Program Files\Python310\lib\concurrent\futures\thread.py", line 52, in run
    result = self.fn(*self.args, **self.kwargs)
  File "D:\server\paths\QQFlacMusicDownloader\src\Common\Tools.py", line 245, in downSingle
    with open(localFile, 'wb') as code:
OSError: [Errno 22] Invalid argument: 'D:\\server\\paths\\QQFlacMusicDownloader/music/AmaLee/AmaLee - Hacking to the Gate (from "Steins;Gate").flac'

怎么绑定cookie?

搜了个歌,单独下载都返回403。 本地搜了一下,没发现config文件, 怎么绑定cookie的啊大佬

[Request] Download based on links / 根据链接下载

As the title suggests, add a option to download based on link (album or single). Search function works great, but this would make everything easier and faster to download whole albums instead of individual tracks.

Example of input:
Input letter "L" for link (similar to how "S" is search) > input link (ex: https://y.qq.com/n/ryqq/albumDetail/003qGXqG4WmYDA).

如标题所示,添加基于链接(专辑或单曲)下载的选项。 搜索功能效果很好,但这将使下载整个专辑而不是单个曲目的一切变得更容易和更快。

输入示例:
链接输入字母“L”(类似于搜索“S”的方式)>输入链接(例如:https://y.qq.com/n/ryqq/albumDetail/003qGXqG4WmYDA)。

再次抱歉翻译,我正在使用谷歌:)

qq音乐歌单翻页没反应

qq音乐根据歌单搜索
下面显示有9页,我点翻页没变化
image

搜歌曲或者歌手的时候翻页可用

提示已提交但是下载列表没有

QQ音乐源下载无损音乐,点击下载提示提交任务成功,但是下载列表没有。
当前docker部署,只映射了本地文件夹没改动其他任何配置
docker日志只看到了请求日志,没有其他异常日志

运行后退出是怎么回事

为什么我跑到这里就会自动退出,也不报错。上午的版本还可以启动网站,这个直接不可以了。
之前main.py版本就是这个问题,昨晚你改为网页版没调用网易这个方法所以可以,现在最新更新的这版启动网站前调用这个方法又报错了?我该怎么处理能获取网易云歌单?

image

部分标题带“版”字的歌曲搜索不到

main.py里面的
filterList = params.get('filterList',
['DJ', 'Remix', '即兴', '变调', 'Live', '伴奏', '版,', '版)', '慢四', "纯音乐", '二胡',
'串烧', '现场'])
使得搜索结果里带“版”字的歌曲都被过滤了,但是有些歌曲并不是现场版或DJ版,而是完整版、新版、重录版之类的,也被一并过滤掉了,filterList这一段删了也没用

qq音乐搜索bug

搜索qq音乐时候前端会多提交一个size,然后后端就报错404,在路由添加size后搜索不到音乐
image
image

网易云无法下载

已登录vip账户,并且同样的设置下用QQ音乐搜索出来的曲目可顺利下载(正版受害者了属于是。
截图如下:
image

搜索歌曲 ID 导致程序崩溃

期望效果:
image
实际效果:界面无反应,日志如下

127.0.0.1 - - [12/Mar/2023 21:34:38] "OPTIONS /wyy/search/4919447/1/30 HTTP/1.1" 200 -
[2023-03-12 21:34:39,334] ERROR in app: Exception on /wyy/search/4919447/1/30 [GET]
Traceback (most recent call last):
  File "C:\Program Files\Python310\lib\site-packages\flask\app.py", line 2528, in wsgi_app
    response = self.full_dispatch_request()
  File "C:\Program Files\Python310\lib\site-packages\flask\app.py", line 1825, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "C:\Program Files\Python310\lib\site-packages\flask_cors\extension.py", line 165, in wrapped_function
    return cors_after_request(app.make_response(f(*args, **kwargs)))
  File "C:\Program Files\Python310\lib\site-packages\flask\app.py", line 1823, in full_dispatch_request
    rv = self.dispatch_request()
  File "C:\Program Files\Python310\lib\site-packages\flask\app.py", line 1799, in dispatch_request
    return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)
  File "D:\server\paths\QQFlacMusicDownloader\web\API\es.py", line 68, in essearch
    lst = netes.searchMusic(
  File "D:\server\paths\QQFlacMusicDownloader\src\Api\Netease.py", line 302, in searchMusic
    for li in result['songs']:
KeyError: 'songs'
127.0.0.1 - - [12/Mar/2023 21:34:39] "GET /wyy/search/4919447/1/30 HTTP/1.1" 500 -

搜索p:8908273546出现共搜索到1条数据,但是过滤后没有发现符合条件的数据。请检查搜索过滤条件是否设置正确。

搜索p:8908273546出现共搜索到1条数据,但是过滤后没有发现符合条件的数据。请检查搜索过滤条件是否设置正确。
但是没有任何配置

配置

{
    "firstOpen": false,
    "token": "simulate load custom token",
    "searchHistory": [
        "p:8908273546"
    ],
    "lastSearch": "p:8908273546",
    "filterKeys": [
    ],
    "config": {
        "onlyMatchSearchKey": false,
        "ignoreNoAlbumSongs": false,
        "classificationMusicFile": false,
        "disableFilterKey": false,
        "concurrency": {
            "num": 16,
            "downloadFolder": "/music/"
        },
        "platform": "qq"
    },
    "netease": {
        "isLogin": false,
        "token": "",
        "anonimousCookie": "",
        "user": {}
    }
}

Windows下关于几个个bug的修改

windows下将以下代码:

localFile = f"{it['singer']} - {it['title']}.{it['extra']}".replace(
    "/", "\\")
localLrcFile = f"{it['singer']} - {it['title']}.lrc".replace(
    "/", "\\")
mShower = localFile
my_path = download_home+it['singer']+'/'
if not onlyShowSingerSelfSongs:
    if not os.path.exists(my_path):
        os.mkdir(f"{my_path}")
my_path = f"{my_path}{it['album']}"
if not os.path.exists(my_path):
    os.mkdir(f"{my_path}")
localFile = os.path.join(my_path, f"{localFile}")
localLrcFile = os.path.join(my_path, f"{localLrcFile}")

替换为:

localFile = f"{it['singer']} - {it['title']}.{it['extra']}".replace(
    "/", ",")
localLrcFile = f"{it['singer']} - {it['title']}.lrc".replace(
    "/", ",")
localFile = localFile.replace('|','')
localLrcFile=localLrcFile.replace('|','')
mShower = localFile
my_path = download_home+it['singer']+'\\'
my_path = my_path.replace('"','')
my_path = my_path.replace("'",'')
my_path = my_path.replace('|','')
my_path = my_path.replace('*','')
my_path = my_path.replace('?','')
my_path = my_path.replace('<','')
my_path = my_path.replace('>','')
my_path = my_path.replace('/', '-')
if not onlyShowSingerSelfSongs:
    if not os.path.exists(my_path):
        os.mkdir(f"{my_path}")
my_path = f"{my_path}{it['album']}"
my_path = my_path.replace('"','')
my_path = my_path.replace("'",'')
my_path = my_path.replace('|','')
my_path = my_path.replace('*','')
my_path = my_path.replace('?','')
my_path = my_path.replace('<','')
my_path = my_path.replace('>','')
my_path = my_path.replace('.', '')
my_path = my_path.replace('/', '-')
if not os.path.exists(my_path):
    os.mkdir(f"{my_path}")
localFile = os.path.join(my_path, f"{localFile}")
localLrcFile = os.path.join(my_path, f"{localLrcFile}")

解决一些歌曲无法下载的问题

web界面有问题

群晖 使用本项目打包好的容器进行部署
1685919386467

相关日志如下
2023/06/05 06:51:29 | stdout | 192.168.123.164 - - [04/Jun/2023 22:51:29] "GET /getConfig HTTP/1.1" 200 -
2023/06/05 06:51:29 | stdout | 192.168.123.164 - - [04/Jun/2023 22:51:29] "�[36mGET /assets/index-77d4dafe.css HTTP/1.1�[0m" 304 -
2023/06/05 06:51:29 | stdout | 192.168.123.164 - - [04/Jun/2023 22:51:29] "�[36mGET /assets/index-1d4497e6.js HTTP/1.1�[0m" 304 -
2023/06/05 06:51:29 | stdout | 192.168.123.164 - - [04/Jun/2023 22:51:29] "�[36mGET /index.html HTTP/1.1�[0m" 304 -
2023/06/05 06:51:23 | stdout | �[33mPress CTRL+C to quit�[0m
2023/06/05 06:51:23 | stdout | * Running on http://192.168.123.80:8899
2023/06/05 06:51:23 | stdout | * Running on http://127.0.0.1:8899
2023/06/05 06:51:23 | stdout | * Running on all addresses (0.0.0.0)
2023/06/05 06:51:23 | stdout | �[31m�[1mWARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.�[0m
2023/06/05 06:51:23 | stdout | * Debug mode: off
2023/06/05 06:51:23 | stdout | * Serving Flask app 'flaskSystem.App'
2023/06/05 06:51:23 | stdout | kw_token已生成 I35ZTSOYGK

终端无限请求‘等待扫码’进程

我正在下载qq音乐的歌单,一切正常速度也很快,跑满了我的带宽
无意间点了一些前端的网易云音乐登录,需要扫码,这时切换到音乐搜索界面之后查看终端进程,发现它还在请求扫码登录,迫于无奈,我扫码登录,但是我扫码登录以后终端还是在请求二维码,对功能没什么影响,只是想反馈一下这个bug
image

运行提示TypeError: 'type' object is not subscriptable

Traceback (most recent call last):
File "MainServer.py", line 11, in
from web.API.es import init as es # 下面无需顺序
File "D:\QQFlacMusicDownloader\web\API\es.py", line 8, in
from src.Api.Netease import Netease
File "D:\QQFlacMusicDownloader\src\Api\Netease.py", line 11, in
from src.Api.BaseApi import BaseApi
File "D:\QQFlacMusicDownloader\src\Api\BaseApi.py", line 12, in
class BaseApi(abc.ABC):
File "D:\QQFlacMusicDownloader\src\Api\BaseApi.py", line 14, in BaseApi
def search(self, searchKey: str) -> list[Songs]:
TypeError: 'type' object is not subscriptable

没有看明白这块怎么调用的,不知道是什么错误

网页样式有问题

image
看了下,是由于css的overflow写死为scroll导致的,改为auto后页面显示正常

image

测试docker镜像

 docker run --name QQFlacMusicDownloader --rm -itd  -p 8899:8899 azraias/qq_flac_music_d
ownloader:latest

今天打开新世界的时候突然变成空白页了

操作系统 Microsoft Windows 10 专业版 (64位)
操作步骤 1把下载好的代码文件放到"D:/Downloads/QQFlacMusicDownloader-master/"路径下
操作步骤 2在文件夹空白处按住shift+鼠标右击,点击"在此处打开PowerShell"
操作步骤 3执行指令"pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple"
操作步骤 4执行指令"pip3 install -r requirements.txt "
操作步骤 5执行指令"python MainServer.py"
操作步骤 6用Google Chrome打开"http://127.0.0.1:8899/",出现了网页标题,但是网页空白
之前按照以上方法可行,但是昨天网页突然就空白了,尝试过重新安装[Python3.11.2]https://www.python.org/ftp/python/3.11.2/python-3.11.2-amd64.exe)和重新解压代码文件但无济于事
1
2
3
4

第一次发Issues不知道还有没有什么遗漏的,感谢原作者分享思路。

[BUG] Special characters break the tool / 特殊字符破坏工具

Hello, great tool. If track has special characters that cannot be added in Windows file names, like " \ / : * ? " < > | " will break the ripper. Quick example try to grab What Do You Mean? (Remix) by Justin Bieber.

A fix would be that the ripper to exclude those characters. Thank you!

你好,很棒的工具。 如果 track 有不能添加到 Windows 文件名中的特殊字符,例如“\ / : * ?” < > | “将打破开膛手。快速示例尝试抓取 Justin Bieber 的 What Do You Mean? (Remix)。

解决方法是让开膛手排除这些字符。 谢谢!对不起中文不好,正在使用翻译:)

File name too long

exception calling callback for <Future at 0x7f5600acb6a0 state=finished raised OSError>
Traceback (most recent call last):
File "/home/lyle/miniconda3/envs/music/lib/python3.10/concurrent/futures/_base.py", line 342, in _invoke_callbacks
callback(self)
File "/opt/QQFlacMusicDownloader/flaskSystem/App.py", line 85, in done
ret = ret.result()
File "/home/lyle/miniconda3/envs/music/lib/python3.10/concurrent/futures/_base.py", line 451, in result
return self.__get_result()
File "/home/lyle/miniconda3/envs/music/lib/python3.10/concurrent/futures/_base.py", line 403, in __get_result
raise self._exception
File "/home/lyle/miniconda3/envs/music/lib/python3.10/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
File "/opt/QQFlacMusicDownloader/flaskSystem/src/Common/Tools.py", line 256, in downSingle
with open(localFile, 'wb') as code:
OSError: [Errno 36] File name too long: '/xxxxxx/Wiener Philharmoniker/Wiener Philharmoniker - Symphony No. 9 in D Minor, WAB 109 - Edition: Leopold Nowak - Bruckner: Symphony No. 9 in D Minor, WAB 109 - Edition: Leopold Nowak - III. Adagio. Langsam, feierlich (D小调第9号交响曲 - 第三乐章 柔板,非常缓慢,庄严的) (Live).mp3'

运行MainServer 后 浏览器访问出现 302 与 304 错误

问题:
运行MainServer 后 浏览器访问http://127.0.0.1:8899, 命令行窗口出现 302 与 304 错误, 浏览器成功跳转至index.html但没有正常页面显示。
image

环境:

  • Windows10 22H2
  • Python3.10
  • Chrome 110.0.5481

复现方法:
clone本项目后在根目录运行以下指令

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
pip install -r requirements.txt
python MainServer.py

在chrome中访问http://127.0.0.1:8899

运行结果
image

会出现请求频繁问题

Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 601, in urlopen
chunked=chunked)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 346, in _make_request
self._validate_conn(conn)
File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 852, in validate_conn
conn.connect()
File "/usr/lib/python3/dist-packages/urllib3/connection.py", line 340, in connect
ssl_context=context)
File "/usr/lib/python3/dist-packages/urllib3/util/ssl
.py", line 332, in ssl_wrap_socket
return context.wrap_socket(sock, server_hostname=server_hostname)
File "/usr/lib/python3.6/ssl.py", line 407, in wrap_socket
_context=self, _session=session)
File "/usr/lib/python3.6/ssl.py", line 817, in init
self.do_handshake()
File "/usr/lib/python3.6/ssl.py", line 1077, in do_handshake
self._sslobj.do_handshake()
File "/usr/lib/python3.6/ssl.py", line 689, in do_handshake
self._sslobj.do_handshake()
ConnectionResetError: [Errno 104] Connection reset by peer

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.