温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

使用Python怎么下载抖音视频

发布时间:2021-02-07 19:18:31 来源:亿速云 阅读:215 作者:Leah 栏目:开发技术

这期内容当中小编将会给大家带来有关使用Python怎么下载抖音视频,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

要批量下载视频,可以先尝试成功下载一个,确定没有水印,然后在写一个循环进行批量下载。

难点:下载一个视频可能很简单,但下载多个就稍微有点复杂,需要抓取多个视频对应的 url,抖音这块做了防爬措施,只允许手机上看到个人主页的视频列表,电脑端的网页却看不到,这就需要抓取手机的 https 包,这里借助 Burpsuite 进行抓包。

使用Python怎么下载抖音视频

这里用到了 Burpsuite ,因此我把自己常用的 Burpsuite 2.1.06 专业版放在了网盘里面,公众号「Python七号」回复「burp」获取,下载后运行start_burp.bat或sh start_burp.sh即可一键启动,无需购买许可,非常方便。

爬取单个视频

  • 找一个抖音视频链接,点击分享,复制链接,在电脑上用打开,然后打开开发者工具,点击 network 选项。

  • 刷新,看接口,找到返回值里有播放地址的接口:

然后开始写代码,获取这个 urllist[0],并下载

def get(share_url) -> dict:
  """
  share_url -> 抖音视频分享url
  返回格式 [{'url':'', 'title','format':'',},{}]
  """
  data = []
  headers = {
    'accept': 'application/json',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'
  }
  api = "https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={item_id}"

  rep = requests.get(share_url, headers=headers, timeout=10)
  if rep.ok:
    # item_id
    item_id = re.findall(r'video/(\d+)', rep.url)
    if item_id:
      item_id = item_id[0]
      # video info
      rep = requests.get(api.format(item_id=item_id), headers=headers, timeout=10)
      if rep.ok and rep.json()["status_code"] == 0:
        info = rep.json()["item_list"][0]
        tmp = {}
        tmp["title"] = info["desc"]

        #去水印的视频链接
        play_url = info["video"]["play_addr"]["url_list"][0].replace('playwm', 'play')
        tmp["url"] = play_url
        tmp["format"] = 'mp4'
       def get(share_url) -> dict:
  """
  share_url -> 抖音视频分享url
  返回格式 [{'url':'', 'title','format':'',},{}]
  """
  data = []
  headers = {
    'accept': 'application/json',
    'user-agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1'
  }
  api = "https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids={item_id}"

  rep = requests.get(share_url, headers=headers, timeout=10)
  if rep.ok:
    # item_id
    item_id = re.findall(r'video/(\d+)', rep.url)
    if item_id:
      item_id = item_id[0]
      # video info
      rep = requests.get(api.format(item_id=item_id), headers=headers, timeout=10)
      if rep.ok and rep.json()["status_code"] == 0:
        info = rep.json()["item_list"][0]
        tmp = {}
        tmp["title"] = info["desc"]

        #去水印的视频链接
        play_url = info["video"]["play_addr"]["url_list"][0].replace('playwm', 'play')
        tmp["url"] = play_url
        tmp["format"] = 'mp4'
        data.append(tmp)

  return data

if __name__ =='__main__':
  videos = get('https://www.iesdouyin.com/share/video/6920538027345415431/?region=&mid=6920538030852885262&u_code=48&titleType=title&did=0&iid=0')
  for video in videos:
    downloader.download(video['url'],video['title'],video['format'],'./download') data.append(tmp)

  return data

if __name__ =='__main__':
  videos = get('https://www.iesdouyin.com/share/video/6920538027345415431/?region=&mid=6920538030852885262&u_code=48&titleType=title&did=0&iid=0')
  for video in videos:
    downloader.download(video['url'],video['title'],video['format'],'./download')

上述就是小编为大家分享的使用Python怎么下载抖音视频了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI