这是效果图:

这也是效果图

然后,废话不多说直接上代码:

然后直接跑代码,抖音的所有音乐都到手

emmm~~~是按照抖音的分类建目录的,^^^

# -*- coding:utf-8 -*-

"""

@author: liuyw

"""

from contextlib import closing

import requests, json, time, re, os, sys, time

class douyin(object):

"""docstring for douyin"""

def __init__(self):

super(douyin, self).__init__()

self.headers = {

'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',

'accept-encoding': 'gzip, deflate, br',

'accept-language': 'zh-CN,zh;q=0.9',

'cache-control': 'max-age=0',

'upgrade-insecure-requests': '1',

'user-agent': 'Mozilla/5.0 (Linux; U; Android 5.1.1; zh-cn; MI 4S Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/53.0.2785.146 Mobile Safari/537.36 XiaoMi/MiuiBrowser/9.1.3',

}

def get_music_urls(self,mc_id):

music_names = []

music_urls = []

user_url = 'https://api.amemv.com/aweme/v1/music/list/?iid=34451996099&device_id=52982221132&os_api=18&app_name=aweme&channel=App%20Store&idfa=00000000-0000-0000-0000-000000000000&device_platform=iphone&build_number=18504&vid=386F3505-7B99-444A-845A-E5EEA12C5936&openudid=e01e26ddeb822fd95f6599de43b7547cfe1a26ea&device_type=iPhone7,2&app_version=1.8.5&version_code=1.8.5&os_version=11.3&screen_width=750&aid=1128&ac=WIFI&cursor=0&mc_id='+str(mc_id)

req = requests.get(user_url, headers=self.headers)

html = json.loads(req.text)

for each in html['music_list']:

share_desc = each['title']

music_names.append(share_desc + '.mp3')

music_urls.append(each['play_url']['uri'])

return music_names, music_urls

def music_downloader(self, music_url,music_name):

"""

下载

"""

size = 0

with closing(requests.get(music_url, headers=self.headers, stream=True)) as response:

chunk_size = 1024

content_size = int(response.headers['content-length'])

if response.status_code == 200:

sys.stdout.write(' [文件大小]:%0.2f MB\n' % (content_size / chunk_size / 1024))

with open(music_name, "wb") as file:

for data in response.iter_content(chunk_size = chunk_size):

file.write(data)

size += len(data)

file.flush()

sys.stdout.write(' [下载进度]:%.2f%%' % float(size / content_size * 100) + '\r')

sys.stdout.flush()

def run(self):

"""

运行函数

Parameters:

None

Returns:

None

"""

mc_id=0

music_url_list='https://api.amemv.com/aweme/v1/music/collection/?iid=34451996099&device_id=52982221132&os_api=18&app_name=aweme&channel=App%20Store&idfa=00000000-0000-0000-0000-000000000000&device_platform=iphone&build_number=18504&vid=386F3505-7B99-444A-845A-E5EEA12C5936&openudid=e01e26ddeb822fd95f6599de43b7547cfe1a26ea&device_type=iPhone7,2&app_version=1.8.5&version_code=1.8.5&os_version=11.3&screen_width=750&aid=1128&ac=WIFI&mas=00dfe1ffff8907b970da90b3e7cf26a0ff84e922cf91ee92e768de&as=a12522c184a0fb66257265&ts=1528112644'

collection = requests.get(music_url_list, headers=self.headers)

js_collection=json.loads(collection.text)

for mc in js_collection['mc_list']:

mc_id=mc['id']

mc_name=mc['mc_name']

music_names, music_urls = self.get_music_urls(mc_id)

#print(mc_name)

if mc_name not in os.listdir('/Users/admin/Desktop/'):

os.mkdir(mc_name)

print('下载中:共有%d个作品!\n' % len(music_urls))

for num in range(len(music_urls)):

if '\\' in music_names[num]:

music_name = music_names[num].replace('\\', '')

elif '/' in music_names[num]:

music_name = music_names[num].replace('/', '')

else:

music_name = music_names[num]

if os.path.isfile(os.path.join(mc_name, music_name)):

print('%s 已存在' % mc_name)

else:

self.music_downloader(music_urls[num], os.path.join(mc_name, music_name))

print('\n')

print('下载完成!')

if __name__ == '__main__':

douyin = douyin()

douyin.run()

python抖音github_利用python 下载抖音上流行音乐相关推荐

  1. 用python做数据分析pdf_利用python进行数据分析pdf

    利用python进行数据分析pdf微盘下载!<利用python进行数据分析>利用Python实现数据密集型应用由浅入深帮助读者解决数据分析问题~适合刚刚接触Python的分析人员以及刚刚接 ...

  2. Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件

    Python之ffmpeg:利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件 目录 利用python编程基于ffmpeg将m4a格式音频文件转为mp3格式文件 1.先下载ff ...

  3. Python语言学习:利用python获取当前/上级/上上级目录路径(获取路径下的最后叶目录的文件名、合并两个不同路径下图片文件名等目录/路径案例、正确加载图片路径)之详细攻略

    Python语言学习:利用python获取当前/上级/上上级目录路径(获取路径下的最后叶目录的文件名.合并两个不同路径下图片文件名等目录/路径案例.正确加载图片路径)之详细攻略 目录 利用python ...

  4. Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)—命令提示符cmd的几种方法

    Python语言学习:利用python语言实现调用内部命令(python调用Shell脚本)-命令提示符cmd的几种方法 目录 利用python语言实现调用内部命令-命令提示符cmd的几种方法 T1. ...

  5. 牛逼的Python库MoviePy!利用Python自动剪辑tiktok视频!

    最近看到一个Github项目,作者利用Python写了一个自动生成tiktok视频的脚本,受到热捧. 现在像抖音.tiktok上有很多流水线生产的视频,不少视频博主靠这个赚了很多,我觉得蛮有意思,这里 ...

  6. python 词云_利用Python生成词云

    利用Python生成词云 一.第三方库的安装与介绍 1.1  Python第三方库jieba(中文分词) 1.介绍 "结巴"中文分词:做最好的 Python 中文分词组件. 2.特 ...

  7. python爬虫背景_利用Python代码实现一键抠背景功能

    前言 又是一个逛csdn发现的一个有趣的小项目,可以一键抠背景,需要用到removebg模块及其API,API可从其官网免费获取,网址如下https://www.remove.bg/zh ps:加上/ ...

  8. python 播放视频 ftp_利用Python快速搭建HTTPFTP服务器

    用 Python 快速实现 FTP 服务器 有时当你想快速搭建一个 FTP 服务器来临时实现文件上传下载时,这是特别有用的.我们这里利用 Python 的Pyftpdlib 模块可以快速的实现一个 F ...

  9. python epub.js_如何利用Python打包HTML页面为epub?

    最近沉迷于将各种博客和官方文档html转化成pdf,结果用手机看还是不太方便,所以想到将html转化成epub格式的电子书,要用os,re,requests,lxm,zipfile,五个库,在这里分享 ...

最新文章

  1. 记录一下g++的编译选项
  2. VScode配置CMAKE文件
  3. 01 小程序开发入门
  4. LaTex中的documentclass{type}应该填什么
  5. 从16.6%到74.2%,谷歌新模型刷新ImageNet纪录,第一作者是上海交大毕业生谢其哲...
  6. 最长公共子序列的C++实现---附二维指针的使用方法
  7. React 中 $$typeof 的作用
  8. js中String的常用扩展
  9. python报错ordinal not in range(128)
  10. Leetcode每日一题:57.insert-interval(插入区间)
  11. 全国计算机二级基础知识ppt,有关全国计算机二级基础知识.ppt
  12. 电源管理与驱动设计笔记
  13. 在eclipse如何删除无效的maven build
  14. 《迎向开阔的人生》——刘墉
  15. 指针式仪表自动识别和读数
  16. 设计模式Java语言实现之策略模式
  17. WKWebView白屏问题
  18. 美国大学计算机科学gpa,美国大学MS硕士平均GPA是多少分?
  19. 小学计算机神奇的因特网教案,小学信息技术第三册全册教案(第一单元 神奇的动画城)...
  20. win11桌面改成win10桌面的设置方法

热门文章

  1. 软件安全理论测试部分
  2. PERT网络分析法(计划评估和审查技术,Program Evaluation and Review Technique)
  3. ​AGV机器人:基于视觉避障的理论基础
  4. 台式计算机兼容性在那查找,电脑兼容性在哪里调整
  5. 张家港python培训_张的英文_张翻译_张英语怎么说_海词词典
  6. 2023年租房投影仪推荐,出租屋投影仪值得买吗?又该怎么选择?
  7. 计算机科学与交通方向,智能交通系统就业方向
  8. JavaScript高级程序设计第四版学习--第二十四章
  9. addr2line快速定位进程异常位置
  10. 【玩转python】python实现不同温度之间的互相转换(附源码)