用Python制作一款属于自己的Music Downloader

文章目录

一、创作灵感:

二、效果图:

1.exe文件:

2.程序运行界面:

三、实现流程:

四、分步介绍:

1.引入模块:

2.完整代码:

3.打包文件:

五、结语:

一、创作灵感:

        深夜整理硬盘时,总觉得自己在银河打捞星尘。每个flac文件都是凝结的月光,mp3则是封存雨声的时间胶囊。当流媒体如潮水退去,这些数字指纹依然在硬盘深处闪烁,成为对抗信号荒漠的密钥。通勤隧道里降噪耳机亮起的蓝光,机舱舷窗边播放列表的呼吸灯,失眠时蜷缩成胎儿的充电线圈——在电波无法抵达的褶皱里,我们与下载的旋律完成着最私密的量子纠缠。(DeepSeek的创作能力非常强大!)

二、效果图:

1.exe文件:

最后生成一个打包好的exe文件,可以随时运行。右下角图标是我们自己生成的,看着和其他应用没有任何违和感,哈哈!

2.程序运行界面:

没有做图形化,自己用着方便就行,有需要的伙伴可以自己研究下,做成可视化界面。

三、实现流程:

1)运用一个while死循环,提示用户输入想下载的歌曲,获取数据并保存成JSON格式。

2)提取JSON中的数据打印歌曲列表,提示用户输入需要下载第几首歌曲,传入参数并获取歌曲下载链接。

3)创建文件夹保存下载下来的歌曲。

4)打包成exe文件使用。

四、分步介绍:

1.引入模块:

requests,和os模块都是系统自带的,不需要另外安装

import requests
import os

2.完整代码:

主要通过获取 copyrightId,contentId, albumId 这三个变量来确定歌曲下载的url位置。可通过Fidddler抓包软件进行捕获分析。

import requests
import os
print('******************************\n该程序由<朱老师>提供')
print('不得用作商业用途!仅供学习!\n******************************')
while True:
    name = input('你想下载的歌曲名称:')
    # 换行
    print('')
    search_url = f'https://c.musicapp.migu.cn/v1.0/content/search_all.do?text={name}&pageNo=1&pageSize=20&isCopyright=1&sort=1&searchSwitch=%7B%22song%22%3A1%2C%22album%22%3A0%2C%22singer%22%3A0%2C%22tagSong%22%3A1%2C%22mvSong%22%3A0%2C%22bestShow%22%3A1%7D'
    search_res = requests.get(search_url)
    # 转化成JSON数据
    JSON = search_res.json()
    song_list = JSON['songResultData']['result']
    total_list = []
    count = 1
    for song_data in song_list:
        song_name = song_data['name']
        singers = song_data['singers'][0]['name']
        contentId = song_data['contentId']
        copyrightId = song_data['copyrightId']
        try:
            albumId = song_data['albums'][0]['id']
            albums_name = song_data['albums'][0]['name']
            list = [count,song_name,singers,albums_name,contentId,copyrightId,albumId]
        except:
            list = [count, song_name, singers, '0', contentId, copyrightId, '0']
        count += 1
        total_list.append(list)

    print('歌名   /   歌手  /   专辑')
    print('')
    for li in total_list:
        print(li[0], li[1], li[2], li[3])
        print('')

    choice = int(input("您想下载的歌曲编号:"))-1
    url = f'https://c.musicapp.migu.cn/MIGUM3.0/strategy/listen-url/v2.3?copyrightId={total_list[choice][5]}&contentId={total_list[choice][4]}&resourceType=2&albumId={total_list[choice][-1]}&netType=01&toneFlag=PQ'
    headers = {'channel': '0140210'}
    res = requests.get(url, headers=headers)
    JSON1 = res.json()
    down_url = JSON1['data']['url']
    res1 = requests.get(down_url)

    # 创建下载完成的歌曲需要保存的文件夹
    folder_path = './【朱老师为您推荐】music'
    if not os.path.exists(folder_path):
        os.makedirs(folder_path)
    file_path = os.path.join(folder_path, f'{name}.mp3')

    # 打开文件并写入内容
    with open(file_path, 'wb') as f:
        f.write(res1.content)
    print(f'《{name}》已经下载好了!')

3.打包文件:

1.找到上面代码生成的py文件根目录,把文件命名为 音乐下载器.py。

2.网上找一张以 ico为后缀的图标文件放入根目录中。

3.在根目录下运行cmd,安装模块,输入:  pip install pyinstaller

4.回车等待安装好后输入:  pyinstaller -F -i aa.ico 音乐下载器.py       进行打包操作(aa.ico是刚刚网上下载的图标文件)

5.打包成功后,运行程序,下载需要的歌曲,会自动生成文件夹保存下载的歌曲。

五、结语:

到这里就全部制作完成了!喜欢的话记得点赞+关注+收藏哦!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

穿梭的编织者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值