欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python抖音無水印視頻下載方法

 更新時間:2021年12月22日 10:57:16   作者:yz_weixiao  
這篇文章主要介紹了用Python下載抖音無水印視頻的方法,本文通過圖文實例代碼相結(jié)合給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下

分享學習Python爬蟲、數(shù)據(jù)分析、數(shù)據(jù)挖掘的點滴。

最近發(fā)現(xiàn)了抖音無水印視頻的下載方法。

# 抖音接口

「url」參數(shù)值就是從抖音上復制的鏈接。

Python下載

首先來看一下,直接訪問抖音鏈接得到的結(jié)果。

妥妥的水印...

接下來打開瀏覽器的開發(fā)者工具,看看視頻的地址。

可以發(fā)現(xiàn)「playAddr」就是視頻的地址,復制然后訪問。

鏈接會重定向到以「v9」開頭的鏈接,然而還是有水印。

接下來就是重點了,首先你需要讓你的瀏覽器能夠修改UA,即爬蟲經(jīng)常用到的「User-Agent」。

我用的是Mac+谷歌瀏覽器,就說說我自己怎么修改的。

Windows的請自行百度~

首先在電腦的文稿中創(chuàng)建一個文件夾。

這個文件夾的路徑如下。

/Users/star-river/Documents/MyChrome

并且在根目錄的終端運行下面這段代碼。

open -n /Applications/Google\ Chrome.app/ --args --disable-web-security --user-data-dir=/Users/star-river/Documents/MyChrome

如此我的谷歌瀏覽器就能成功更換UA啦!

還是直接訪問抖音的鏈接,可以看到結(jié)果和最初的不一樣。

就在這個模式下查找接口。

發(fā)現(xiàn)「?item_ids」開頭的這個接口就包含了我們想要的無水印抖音視頻。

就是「play_addr」下的列表中的那兩個鏈接。

其中「?item_ids」開頭的這個接口有兩個參數(shù)需要我們在另一個接口中獲取。

這樣「item_ids」和「dytk」參數(shù)值我們也知道了。

不過我們直接用瀏覽器訪問獲取到的那兩個鏈接是不會直接出現(xiàn)視頻的,需要和上面的一樣。

也改變一下UA,這里的鏈接如果還用「iPhone X」這個UA訪問,會失敗。

什么原因,小F就不得而知了...

把瀏覽器UA改為「Responsive」即可訪問,鏈接會重定向。

這樣無水印的抖音視頻就搞定了。

不過要是每個視頻都需要這么下載,就太麻煩了。

所以寫了用Python就可以下載視頻的代碼。

import requests
import json
import re

headers = {
    'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/ajpg,*/*;q=0.8',
    'accept-encoding': 'gzip, deflate, br',
    'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
    'cache-control': 'max-age=0',
    # 這個貌似很重要
    'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36',
}


def download(url):
    """
    下載抖音無水印視頻
    """
    # 獲取接口參數(shù)
    html = requests.get(url=url, headers=headers)
    title = re.findall('itemId: "(.*?)",', html.text)[0]
    dytk = re.findall('dytk: "(.*?)" }', html.text)[0]

    # 拼接接口
    url_item = 'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=' + title + '&dytk=' + dytk

    # 獲取抖音無水印視頻鏈接
    html_item = requests.get(url=url_item, headers=headers)
    # 字符串轉(zhuǎn)字典
    content = json.loads(html_item.text)

    # 視頻接口
    url_video = content['item_list'][0]['video']['play_addr']['url_list'][1]
    response = requests.get(url_video, headers=headers, allow_redirects=True)

    # 獲取重定向后的鏈接,這個也是無水印視頻的下載鏈接,不過本次沒用
    redirect = response.url
    print(redirect)

    # 視頻是二進制,需要這種下載辦法
    video = requests.get(url_video, headers=headers).content
    video_name = "douyin.mp4"
    with open(video_name, 'wb') as f:
        f.write(video)
        f.flush()
    print("下載完成")

if __name__ == '__main__':
    # 抖音鏈接
    url = 'https://v.douyin.com/XJj85H/'
    download(url)

無水印視頻完美下載。

接口下載

既然知道了如何用Python下載視頻。

那么小F想讓大家下載的更方便一點,所以將程序部署到了服務器上。

你只需要通過小F的接口即可下載視頻,代碼如下。

from flask import Flask, request, send_file
import requests
import json
import re

app = Flask(__name__)


# 只接受get方法訪問
@app.route("/douyin/", methods=["GET"])
def check():
    headers = {
        'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/ajpg,*/*;q=0.8',
        'accept-encoding': 'gzip, deflate, br',
        'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
        'cache-control': 'max-age=0',
        'User-Agent': 'Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Mobile Safari/537.36',
    }
    # 默認返回內(nèi)容
    return_dict = {'code': 1, 'result': False, 'msg': '請求成功'}
    # 判斷入?yún)⑹欠駷榭?
    if request.args is None:
        return_dict['return_code'] = '504'
        return_dict['return_info'] = '請求參數(shù)為空'
        return json.dumps(return_dict, ensure_ascii=False)
    # 獲取傳入的參數(shù)
    get_data = request.args.to_dict()
    url = get_data.get('url')

    # 獲取接口參數(shù)
    html = requests.get(url=url, headers=headers)
    title = re.findall('itemId: "(.*?)",', html.text)[0]
    dytk = re.findall('dytk: "(.*?)" }', html.text)[0]

    # 拼接接口
    url_item = 'https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=' + title + '&dytk=' + dytk

    # 獲取抖音無水印視頻鏈接
    html_item = requests.get(url=url_item, headers=headers)
    # 字符串轉(zhuǎn)字典
    content = json.loads(html_item.text)

    # 獲取視頻相關(guān)的信息
    # data = {}
    # 視頻的描述
    # data['videoDesc'] = content['item_list'][0]['desc']
    # 視頻的封面圖,小圖
    # data['dynamiCoverUrl'] = content['item_list'][0]['video']['dynamic_cover']['url_list'][0]
    # 視頻的封面圖,大圖
    # data['staticCoverUrl'] = content['item_list'][0]['video']['origin_cover']['url_list'][0]
    # 視頻的評論數(shù)
    # data['comments'] = content['item_list'][0]['statistics']['comment_count']
    # 視頻的點贊數(shù)
    # data['prise'] = content['item_list'][0]['statistics']['digg_count']

    # 視頻接口
    url_video = content['item_list'][0]['video']['play_addr']['url_list'][1]
    response = requests.get(url_video, headers=headers, allow_redirects=True)

    # 獲取重定向后的鏈接,這個也是無水印視頻的下載鏈接,不過本次沒用
    redirect = response.url
    # print(redirect)
    # 視頻的下載鏈接
    # data['videoPlayAddr'] = redirect
    # 返回視頻的信息
    # return_dict['result'] = data
    # 返回結(jié)果
    # return json.dumps(return_dict, ensure_ascii=False)

    video = requests.get(url=redirect, headers=headers).content
    video_name = "douyin.mp4"
    with open(video_name, 'wb') as f:
        f.write(video)
        f.flush()
    return send_file('douyin.mp4')
if __name__ == "__main__":
    # 本地調(diào)試
    app.run(debug=True)
    # 部署上線
    # app.run(host='127.0.0.1', port=443)

如果本地安裝了Flask以及Requests庫,這個程序是可以直接運行。

并且能夠下載到你所想要的無水印抖音視頻。

# 本地接口

http://127.0.0.1:500/douyin/?url=https://v.douyin.com/CoQBx1/

部署到服務器上的話,則需要使用443端口。

到此這篇關(guān)于用Python下載抖音無水印視頻的文章就介紹到這了,更多相關(guān)Python下載抖音無水印視頻內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 對Python獲取屏幕截圖的4種方法詳解

    對Python獲取屏幕截圖的4種方法詳解

    今天小編就為大家分享一篇對Python獲取屏幕截圖的4種方法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • Python調(diào)用.NET庫的方法步驟

    Python調(diào)用.NET庫的方法步驟

    這篇文章主要介紹了Python調(diào)用.NET庫的方法步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • Python?實現(xiàn)圖像特效中的油畫效果

    Python?實現(xiàn)圖像特效中的油畫效果

    這篇文章主要是為大家簡單介紹一下圖像添加油畫特效的基本原理以及代碼實現(xiàn),文中的示例代碼很詳細,對我們學習或者工作有一點的價值,感興趣的小伙伴可以了解一下
    2021-12-12
  • Python實現(xiàn)霍夫圓和橢圓變換代碼詳解

    Python實現(xiàn)霍夫圓和橢圓變換代碼詳解

    這篇文章主要介紹了Python實現(xiàn)霍夫圓和橢圓變換代碼詳解,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • Python的輸入,輸出和標識符詳解

    Python的輸入,輸出和標識符詳解

    這篇文章主要介紹了介紹了Python的輸入,輸出和標識符,有需要的朋友們可以參考一下,希望能給您帶來幫助
    2022-01-01
  • python GUI模擬實現(xiàn)計算器

    python GUI模擬實現(xiàn)計算器

    這篇文章主要為大家詳細介紹了python GUI模擬實現(xiàn)計算器,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2020-06-06
  • PyCharm代碼回滾,恢復歷史版本的解決方法

    PyCharm代碼回滾,恢復歷史版本的解決方法

    今天小編就為大家分享一篇PyCharm代碼回滾,恢復歷史版本的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python 類屬性與實例屬性,類對象與實例對象用法分析

    Python 類屬性與實例屬性,類對象與實例對象用法分析

    這篇文章主要介紹了Python 類屬性與實例屬性,類對象與實例對象用法,結(jié)合實例形式分析了java類相關(guān)的屬性、實例化、對象等相關(guān)概念與操作技巧,需要的朋友可以參考下
    2019-09-09
  • ROS1?rosbag的詳細使用并且使用python合并bag包的方法

    ROS1?rosbag的詳細使用并且使用python合并bag包的方法

    這篇文章主要介紹了ROS1?rosbag的詳細使用,并且使用python來合并bag包,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • Django框架設置cookies與獲取cookies操作詳解

    Django框架設置cookies與獲取cookies操作詳解

    這篇文章主要介紹了Django框架設置cookies與獲取cookies操作,結(jié)合實例形式詳細分析了Django框架針對cookie操作的各種常見技巧與操作注意事項,需要的朋友可以參考下
    2019-05-05

最新評論