www.( ).com 是抖音短视频下载安装.com谁发表的视频

评论已关闭
1个视频,24小时内涨了35万精准粉丝,1770万播放量,近千人主动添加微信……
陈松松,2011年至今(7年)开始专注视频营销、原创视频精准引流!
“这是我写的第174篇视频营销原创文章,抖音第14篇原创文章”
文/陈松松原创
微信公众号:陈松松视频营销
未经许可,禁止转载,抄袭必究
我们好久不见,我是松松老师
今天送给大家一个特别的惊喜……
评论已关闭
陈松松,2011年至今(7年)专注视频营销、原创视频精准引流
“这是我写的第173篇关于视频营销原创文章”
我希望大家不是技术大拿,而是思维大拿。
用思维控制技术,而不是用技术控制自己。
昨天分享《抖音5天涨粉40.1万实战运营方案复盘(11)数据分析》,今天继续分享第12讲:账号违规
运营3:账号违规
我们在运营抖音号的时候一定是建……
评论已关闭
陈松松,2011年至今(7年)专注视频营销、原创视频精准引流
“这是我写的第172篇关于视频营销原创文章”
我希望大家不是技术大拿,而是思维大拿。
用思维控制技术,而不是用技术控制自己。
昨天分享《抖音5天涨粉40.1万实战运营方案复盘(10)粉丝运营》,今天继续分享第11讲:数据分析
运营2:数据分析
我们的视频火不火,能不能上热门……
评论已关闭
陈松松,2011年至今(7年)专注视频营销、原创视频精准引流
“这是我写的第171篇关于视频营销原创文章”
我希望大家不是技术大拿,而是思维大拿。
用思维控制技术,而不是用技术控制自己。
昨天分享《抖音5天涨粉40.1万实战运营方案复盘(9)发布技巧》,今天继续分享第10讲:粉丝运营
原计划在今天把粉丝运营、数据分析、账号违规全部讲完,但在写的过程中,发……
评论已关闭
陈松松,2011年至今(7年)专注视频营销、原创视频精准引流
“这是我写的第170篇关于视频营销原创文章”
我希望大家不是技术大拿,而是思维大拿。
用思维控制技术,而不是用技术控制自己。
昨天分享《抖音5天涨粉40.1万实战运营方案复盘(8)内容运营》,今天继续分享第9讲:发布技巧
第九部分:发布技巧
发布视频看着挺简单,在填写的……
评论已关闭
陈松松,2011年至今(7年)专注视频营销、原创视频精准引流
“这是我写的第169篇关于视频营销原创文章”
我希望大家不是技术大拿,而是思维大拿。
用思维控制技术,而不是用技术控制自己。
昨天分享《抖音5天涨粉40.1万实战运营方案复盘(7)抖音变现》,今天继续分享第七讲:内容运营
第八部分:内容运营
玩抖音,其实就是做内容
评论已关闭
陈松松,2011年至今(7年)专注视频营销、原创视频精准引流
“这是我写的第168篇关于视频营销原创文章”
先通过文章打通大家的抖音运营思维,再通过视频讲解抖音技术和实操方法。
我希望大家不是技术大拿,而是思维大拿。
用思维控制技术,而不是用技术控制自己。
昨天分享《抖音5天涨粉40.1万实战运营方案复盘(6)精准引流》,今天继续分享第七讲:抖音变现
评论已关闭
陈松松,2011年至今(7年)专注视频营销、原创视频精准引流
“这是我写的第167篇关于视频营销原创文章”
先通过文章打通大家的抖音运营思维,再通过视频讲解抖音技术和实操方法。
我希望大家不是技术大拿,而是思维大拿。
用思维控制技术,而不是用技术控制自己。
昨天分享《抖音5天涨粉40.1万实战运营方案复盘(5)疯狂涨粉》,今天继续分享第六讲:精准引流
评论已关闭
陈松松,2011年至今(7年)专注视频营销、原创视频精准引流
“这是我写的第166篇关于视频营销原创文章”
我们分享是有先后顺序的:
先打通大家的抖音运营思维,再讲抖音技术和实操方法,因为抖音的技术和实操方法是站在抖音运营思维的基础之上,如果思维打不开,学的越多的越迷茫,学的越多,对你越不利!
我希望大家不是技术大拿,而是思维大拿,用思维控制技术,……
评论已关闭
陈松松,2011年至今(7年)专注视频营销、原创视频精准引流
“这是我写的第165篇关于视频营销原创文章”
昨天刚刚分享《抖音5天涨粉40.1万实战运营方案复盘(3)关注同行》,不知道对你有什么启发没,没有看的,可以看一下,今天继续分享第四讲:抖音算法
第四部分:抖音算法
在公众号上,
如果我们没有足够的粉丝,那我们发的内容阅读量比较低。
《视频剪辑秘笈-赚钱篇》2.2K173 条评论分享收藏感谢收起
https://www.zhihu.com/video/272384
抖音我已经删了,感觉太浪费时间。除了让人看个乐子以外,我收获不到别的任何东西。同质化的内容太多,就那么几样美女化妆前后、低龄小孩跳街舞、宠物说话……实在是审美疲劳。大发和小朋友们一起玩捉迷藏,这次她当鬼 了。大发边数边喊“你们藏好没有”然而并没 有人回答她。当她数到3.2.1时,恐怖的事情 发生了,小朋友们都站在她身后: “爱就像蓝天白云,晴空万里,突然暴风雨”时间宝贵,需要学的知识还很多,需要做的工作还很多,还轮不到让抖音来占用我宝贵的时间。就酱……赞同 2.1K407 条评论分享收藏感谢收起抖音,是一款可以拍短视频的音乐创意短视频社交软件,该软件于2016年9月上线,是一个专注年轻人的15秒音乐短视频社区。用户可以通过这款软件选择歌曲,拍摄15秒的音乐短视频,形成自己的作品。此APP已在Android各大应用商店和APP Store均有上线。
今天咱们就用Python爬取抖音视频
环境:Python3.6+Windows
IDE:你开行就好,喜欢用哪个就用哪个
<span style="color: # from splinter.driver.webdriver.chrome import Options, Chrome
<span style="color: # from splinter.browser import Browser
<span style="color: # from contextlib import closing
<span style="color: # import requests, json, time, re, os, sys, time
<span style="color: # from bs4 import BeautifulSoup
获得视频播放地址
查询的用户ID
视频名字列表
视频链接列表
def get_video_urls(self, user_id):
video_names = []
video_urls = []
unique_id = ''
while unique_id != user_id:
search_url = 'https://api.amemv.com/aweme/v1/discover/search/?cursor=0&keyword=%s&count=10&type=1&retry_type=no_retry&iid=&device_id=&ac=wifi&channel=xiaomi&aid=1128&app_name=aweme&version_code=162&version_name=1.6.2&device_platform=android&ssmix=a&device_type=MI+5&device_brand=Xiaomi&os_api=24&os_version=7.0&uuid=187&openudid=dceeadb&manifest_version_code=162&resolution=&dpi=480&update_version_code=1622' % user_id
req = requests.get(url = search_url, verify = False)
html = json.loads(req.text)
<span style="color: # +
aweme_count = html['user_list'][<span style="color: #]['user_info']['aweme_count']
<span style="color: # +
uid = html['user_list'][<span style="color: #]['user_info']['uid']
<span style="color: # +
nickname = html['user_list'][<span style="color: #]['user_info']['nickname']
<span style="color: # +
unique_id = html['user_list'][<span style="color: #]['user_info']['unique_id']
<span style="color: # +
user_url = 'https://www.douyin.com/aweme/v1/aweme/post/?user_id=%s&max_cursor=0&count=%s' % (uid, aweme_count)
<span style="color: # +
req = requests.get(url = user_url, verify = False)
<span style="color: # +
html = json.loads(req.text)
<span style="color: # +
i = <span style="color: #
<span style="color: # +
for each in html['aweme_list']:
<span style="color: # +
share_desc = each['share_info']['share_desc']
<span style="color: # +
if '抖音-原创音乐短视频社区' == share_desc:
<span style="color: # +
video_names.append(str(i) + '.mp4')
<span style="color: # +
i += <span style="color: #
<span style="color: # +
<span style="color: # +
video_names.append(share_desc + '.mp4')
<span style="color: # +
video_urls.append(each['share_info']['share_url'])
<span style="color: # +
<span style="color: # +
return video_names, video_urls, nickname
获得带水印的视频播放地址
video_url:带水印的视频播放地址
download_url: 带水印的视频下载地址
<span style="color: #
def get_download_url(self, video_url):
<span style="color: #
<span style="color: # +
req = requests.get(url = video_url, verify = False)
<span style="color: # +
bf = BeautifulSoup(req.text, 'lxml')
<span style="color: # +
script = bf.find_all('script')[-<span style="color: #]
<span style="color: # +
video_url_js = re.findall('var data = \[(.+)\];', str(script))[<span style="color: #]
<span style="color: # +
video_html = json.loads(video_url_js)
<span style="color: # +
download_url = video_html['video']['play_addr']['url_list'][<span style="color: #]
<span style="color: # +
return download_url
video_url: 带水印的视频地址
video_name: 视频名
watermark_flag: 是否下载不带水印的视频
def video_downloader(self, video_url, video_name, watermark_flag=True):
Parameters:
video_url: 带水印的视频地址
video_name: 视频名
watermark_flag: 是否下载不带水印的视频
<span style="color: # +
<span style="color: # +
size = <span style="color: #
<span style="color: # +
if watermark_flag == True:
<span style="color: # +
video_url = self.remove_watermark(video_url)
<span style="color: # +
<span style="color: # +
video_url = self.get_download_url(video_url)
<span style="color: # +
with closing(requests.get(video_url, stream=True, verify = False)) as response:
<span style="color: # +
chunk_size = <span style="color: #24
<span style="color: # +
content_size = int(response.headers['content-length'])
<span style="color: # +
if response.status_code == <span style="color: #0:
<span style="color: # +
sys.stdout.write('
[文件大小]:%0.2f MB\n' % (content_size / chunk_size / <span style="color: #24))
<span style="color: # +
<span style="color: # +
with open(video_name, "wb") as file:
<span style="color: # +
for data in response.iter_content(chunk_size = chunk_size):
<span style="color: # +
file.write(data)
<span style="color: # +
size += len(data)
<span style="color: # +
file.flush()
<span style="color: # +
<span style="color: # +
sys.stdout.write('
[下载进度]:%.2f%%' % float(size / content_size * <span style="color: #0) + '\r')
<span style="color: # +
sys.stdout.flush()
获得无水印的视频播放地址
def remove_watermark(self, video_url):
获得无水印的视频播放地址
Parameters:
video_url: 带水印的视频地址
无水印的视频下载地址
self.driver.visit('http://douyin.iiilab.com/')
<span style="color: # +
self.driver.find_by_tag('input').fill(video_url)
<span style="color: # +
self.driver.find_by_xpath('//button[@class="btn btn-default"]').click()
<span style="color: # +
html = self.driver.find_by_xpath('//div[@class="thumbnail"]/div/p')[0].html
<span style="color: # +
bf = BeautifulSoup(html, 'lxml')
<span style="color: # +
return bf.find('a').get('href')
def run(self):
Parameters:
self.hello()
<span style="color: # +
user_id = input('请输入ID(例如):')
<span style="color: # +
video_names, video_urls, nickname = self.get_video_urls(user_id)
<span style="color: # +
if nickname not in os.listdir():
<span style="color: # +
os.mkdir(nickname)
<span style="color: # +
print('视频下载中:共有%d个作品!\n' % len(video_urls))
<span style="color: # +
for num in range(len(video_urls)):
<span style="color: # +
解析第%d个视频链接 [%s] 中,请稍后!\n' % (num+1, video_urls[num]))
<span style="color: # +
if '\\' in video_names[num]:
<span style="color: # +
video_name = video_names[num].replace('\\', '')
<span style="color: # +
elif '/' in video_names[num]:
<span style="color: # +
video_name = video_names[num].replace('/', '')
<span style="color: # +
<span style="color: # +
video_name = video_names[num]
<span style="color: # +
self.video_downloader(video_urls[num], os.path.join(nickname, video_name))
<span style="color: # +
print('\n')
<span style="color: # +
<span style="color: # +
print('下载完成!')
1 +# -*- coding:utf-8 -*-
3 +Python学习交流群:
4 +Python学习交流群:
5 +Python学习交流群:
7 +from splinter.driver.webdriver.chrome import Options, Chrome
8 +from splinter.browser import Browser
9 +from contextlib import closing
10 +import requests, json, time, re, os, sys, time
11 +from bs4 import BeautifulSoup
class DouYin(object):
def __init__(self, width = 500, height = 300):
抖音App视频下载
# 无头浏览器
chrome_options = Options()
chrome_options.add_argument('user-agent="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0. Safari/537.36"')
self.driver = Browser(driver_name='chrome', executable_path='D:/chromedriver', options=chrome_options, headless=True)
def get_video_urls(self, user_id):
获得视频播放地址
Parameters:
user_id:查询的用户ID
video_names: 视频名字列表
video_urls: 视频链接列表
nickname: 用户昵称
video_names = []
video_urls = []
unique_id = ''
while unique_id != user_id:
search_url = 'https://api.amemv.com/aweme/v1/discover/search/?cursor=0&keyword=%s&count=10&type=1&retry_type=no_retry&iid=&device_id=&ac=wifi&channel=xiaomi&aid=1128&app_name=aweme&version_code=162&version_name=1.6.2&device_platform=android&ssmix=a&device_type=MI+5&device_brand=Xiaomi&os_api=24&os_version=7.0&uuid=187&openudid=dceeadb&manifest_version_code=162&resolution=&dpi=480&update_version_code=1622' % user_id
req = requests.get(url = search_url, verify = False)
html = json.loads(req.text)
aweme_count = html['user_list'][0]['user_info']['aweme_count']
uid = html['user_list'][0]['user_info']['uid']
nickname = html['user_list'][0]['user_info']['nickname']
unique_id = html['user_list'][0]['user_info']['unique_id']
user_url = 'https://www.douyin.com/aweme/v1/aweme/post/?user_id=%s&max_cursor=0&count=%s' % (uid, aweme_count)
req = requests.get(url = user_url, verify = False)
html = json.loads(req.text)
for each in html['aweme_list']:
share_desc = each['share_info']['share_desc']
if '抖音-原创音乐短视频社区' == share_desc:
video_names.append(str(i) + '.mp4')
video_names.append(share_desc + '.mp4')
video_urls.append(each['share_info']['share_url'])
return video_names, video_urls, nickname
def get_download_url(self, video_url):
获得带水印的视频播放地址
Parameters:
video_url:带水印的视频播放地址
download_url: 带水印的视频下载地址
req = requests.get(url = video_url, verify = False)
bf = BeautifulSoup(req.text, 'lxml')
script = bf.find_all('script')[-1]
video_url_js = re.findall('var data = \[(.+)\];', str(script))[0]
video_html = json.loads(video_url_js)
download_url = video_html['video']['play_addr']['url_list'][0]
return download_url
def video_downloader(self, video_url, video_name, watermark_flag=True):
Parameters:
video_url: 带水印的视频地址
video_name: 视频名
watermark_flag: 是否下载不带水印的视频
if watermark_flag == True:
video_url = self.remove_watermark(video_url)
video_url = self.get_download_url(video_url)
with closing(requests.get(video_url, stream=True, verify = False)) 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(video_name, "wb") as file:
for data in response.iter_content(chunk_size = chunk_size):
file.write(data)
size += len(data)
<span style="color: #0 +
file.flush()
<span style="color: #1 +
<span style="color: #2 +
sys.stdout.write('
[下载进度]:%.2f%%' % float(size / content_size * 100) + '\r')
<span style="color: #3 +
sys.stdout.flush()
<span style="color: #4 +
<span style="color: #5 +
<span style="color: #6
def remove_watermark(self, video_url):
<span style="color: #7 +
<span style="color: #8 +
获得无水印的视频播放地址
<span style="color: #9 +
Parameters:
<span style="color: #0 +
video_url: 带水印的视频地址
<span style="color: #1 +
<span style="color: #2 +
无水印的视频下载地址
<span style="color: #3 +
<span style="color: #4 +
self.driver.visit('http://douyin.iiilab.com/')
<span style="color: #5 +
self.driver.find_by_tag('input').fill(video_url)
<span style="color: #6 +
self.driver.find_by_xpath('//button[@class="btn btn-default"]').click()
<span style="color: #7 +
html = self.driver.find_by_xpath('//div[@class="thumbnail"]/div/p')[0].html
<span style="color: #8 +
bf = BeautifulSoup(html, 'lxml')
<span style="color: #9 +
return bf.find('a').get('href')
<span style="color: #0 +
<span style="color: #1
def run(self):
<span style="color: #2 +
<span style="color: #3 +
<span style="color: #4 +
Parameters:
<span style="color: #5 +
<span style="color: #6 +
<span style="color: #7 +
<span style="color: #8 +
<span style="color: #9 +
self.hello()
<span style="color: #0 +
user_id = input('请输入ID(例如):')
<span style="color: #1 +
video_names, video_urls, nickname = self.get_video_urls(user_id)
<span style="color: #2 +
if nickname not in os.listdir():
<span style="color: #3 +
os.mkdir(nickname)
<span style="color: #4 +
print('视频下载中:共有%d个作品!\n' % len(video_urls))
<span style="color: #5 +
for num in range(len(video_urls)):
<span style="color: #6 +
解析第%d个视频链接 [%s] 中,请稍后!\n' % (num+1, video_urls[num]))
<span style="color: #7 +
if '\\' in video_names[num]:
<span style="color: #8 +
video_name = video_names[num].replace('\\', '')
<span style="color: #9 +
elif '/' in video_names[num]:
<span style="color: #0 +
video_name = video_names[num].replace('/', '')
<span style="color: #1 +
<span style="color: #2 +
video_name = video_names[num]
<span style="color: #3 +
self.video_downloader(video_urls[num], os.path.join(nickname, video_name))
<span style="color: #4 +
print('\n')
<span style="color: #5 +
<span style="color: #6 +
print('下载完成!')
<span style="color: #7 +
<span style="color: #8
def hello(self):
<span style="color: #9 +
<span style="color: #0 +
打印欢迎界面
<span style="color: #1 +
Parameters:
<span style="color: #2 +
<span style="color: #3 +
<span style="color: #4 +
<span style="color: #5 +
<span style="color: #6 +
print('*' * 100)
<span style="color: #7 +
print('\t\t\t\t抖音App视频下载小助手')
<span style="color: #8 +
print('\t\t作者:Python学习交流群:')
<span style="color: #9 +
print('*' * 100)
<span style="color: #0 +
<span style="color: #1 +
<span style="color: #2 +if __name__ == '__main__':
<span style="color: #3 +
douyin = DouYin()
<span style="color: #4 +
douyin.run()
阅读(...) 评论()}

我要回帖

更多关于 抖音怎么发表长视频 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信