前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >New Product

New Product

作者头像
NikoDos
发布2022-03-29 16:31:05
6520
发布2022-03-29 16:31:05
举报
文章被收录于专栏:Niko的小窝Niko的小窝

昨天翻了下写过的博文,看着看着,一个邪恶的想法油然而生……

“为何不做一个集合音乐下载和播放的小程序呢?以我的能力完全可以的啊!搞他。” Niko贱贱的语言

于是开始搞了。

也没多久,一天一夜,搞定了。

下载的音乐会以歌曲id命名,放在文件目录,支持多文件下载(不是同时)。

看到没,下载完之后支持选择播放,但,凡事就怕但。 界面是在太 {丑} 好 {得} 看 {一} 了{批}!

没办法啊!Python语言没一个好看的UI界面,也可能有,我不会用,比如Pyqt5。 害,不多说了,多说无益,放源代码!

代码语言:javascript
复制
from tkinter.constants import LEFT, RIGHT
import requests
import tkinter
from tkinter import messagebox
import sys


def music_play():
    import pygame

    pygame.mixer.init()
    pygame.mixer.music.load(str(id) + '.mp3')
    pygame.mixer.music.play()


def get_link():
    try:
        text = entry.get()
        lst = text.split('?')
        str_lst = lst[1].split('=')[1]

        link = 'https://music.163.com/song/media/outer/url?id=' + str_lst

        global id
        id = str(str_lst)

        return link, id

    except Exception as error:
        error_s = 'ERROR:', str(error)
        entry.delete(0, tkinter.END)
        messagebox.showerror(error_s)


def get_song(link, id):
    data = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'
    }
    resp = requests.get(link, data=data).content
    with open('.\\' + id + '.mp3', 'wb') as s:
        s.write(resp)

    global result
    result = messagebox.askyesno(title='是否播放?', message='下载完成,是否播放?')

    if result:
        music_play()

    return True


def ex():
    sys.exit(0)


def tkin_canvas():
    global top
    top = tkinter.Tk()
    top.title('网易云音乐下载')

    L1 = tkinter.Label(top, text='请输入歌曲网址:')

    global entry
    entry = tkinter.Entry(top)

    button = tkinter.Button(top, text='下载', command=main)
    button_exit = tkinter.Button(top, text='退出', command=ex)

    L1.pack(side=LEFT)
    button_exit.pack(side=RIGHT)
    button.pack(side=RIGHT)
    entry.pack(side=RIGHT)

    top.mainloop()


def main():
    print('System Starting......')
    all = get_link()
    link = all[0]
    id = all[1]
    chose = get_song(link, id)
    print('All Done.')


if __name__ == '__main__':
    tkin_canvas()

也没多少,80多行,轻轻松松。 搞完了这个,以后再来个进阶的,不断进步,积极进取!

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-01-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档