最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python抖音無(wú)水印視頻下載方法

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

分享學(xué)習(xí)Python爬蟲、數(shù)據(jù)分析、數(shù)據(jù)挖掘的點(diǎn)滴。

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

# 抖音接口

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

Python下載

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

妥妥的水印...

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

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

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

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

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

Windows的請(qǐng)自行百度~

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

這個(gè)文件夾的路徑如下。

/Users/star-river/Documents/MyChrome

并且在根目錄的終端運(yùn)行下面這段代碼。

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

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

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

就在這個(gè)模式下查找接口。

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

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

其中「?item_ids」開頭的這個(gè)接口有兩個(gè)參數(shù)需要我們?cè)诹硪粋€(gè)接口中獲取。

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

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

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

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

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

這樣無(wú)水印的抖音視頻就搞定了。

不過(guò)要是每個(gè)視頻都需要這么下載,就太麻煩了。

所以寫了用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',
    # 這個(gè)貌似很重要
    '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):
    """
    下載抖音無(wú)水印視頻
    """
    # 獲取接口參數(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

    # 獲取抖音無(wú)水印視頻鏈接
    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)

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

    # 視頻是二進(jìn)制,需要這種下載辦法
    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)

無(wú)水印視頻完美下載。

接口下載

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

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

你只需要通過(guò)小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',
    }
    # 默認(rèn)返回內(nèi)容
    return_dict = {'code': 1, 'result': False, 'msg': '請(qǐng)求成功'}
    # 判斷入?yún)⑹欠駷榭?
    if request.args is None:
        return_dict['return_code'] = '504'
        return_dict['return_info'] = '請(qǐng)求參數(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

    # 獲取抖音無(wú)水印視頻鏈接
    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]
    # 視頻的評(píng)論數(shù)
    # data['comments'] = content['item_list'][0]['statistics']['comment_count']
    # 視頻的點(diǎn)贊數(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)

    # 獲取重定向后的鏈接,這個(gè)也是無(wú)水印視頻的下載鏈接,不過(guò)本次沒用
    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庫(kù),這個(gè)程序是可以直接運(yùn)行。

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

# 本地接口

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

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

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

相關(guān)文章

最新評(píng)論

弥勒县| 温泉县| 酉阳| 广丰县| 慈利县| 凉城县| 苍溪县| 吉林省| 会理县| 清原| 云梦县| 汉源县| 柘荣县| 托克逊县| 陆丰市| 正宁县| 荃湾区| 巴马| 虎林市| 九江市| 抚松县| 商洛市| 邢台市| 宝坻区| 都江堰市| 萨嘎县| 崇州市| 丰城市| 庐江县| 克什克腾旗| 南京市| 延庆县| 琼海市| 万年县| 灵川县| 广州市| 东乡族自治县| 西青区| 上饶市| 红安县| 子洲县|