直接用手机客户端下载抖音的视频,上边会有水印和片尾。有很多网站和软件可以提取无水印的视频,但自己写个脚本批量处理更方便些。很多无水印视频的分辨率比带水印的视频低些,没有办法获取原大小的。

用抖音的手机客户端复制链接,粘贴到一个文本文件里(UTF-8 编码),一行一个。也可以自己写,格式是 描述信息 抖音短链接,描述信息里可以有空格。要下载长链接的话,省去第一次 curl,用 echo 代替即可,可以自行适配。脚本是用 zsh 写的,如果用的是 bash,稍加修改即可。

input.txt 内容

你是我三十九度的风,风一样的梦。 #二十四节气 #西瓜 https://v.douyin.com/JNQc4gv/ 复制此链接……
你们有多少人没亲眼见过 #萤火虫 https://v.douyin.com/JNQnGoB/ 复制此链接……
君子如兰茶未满,旧识思追酒已温。#尼康 #情感 @笔墨伺候 https://v.douyin.com/JNQ74Yq/ 复制此链接……

dldouyin 内容

#!/bin/zsh

while {read line} {
    title=$(echo $line | sed 's/ https.*$//g')
    surl=$(echo $line | grep -o 'https[^ ]*')

    # 保存一个快捷方式,可以去掉这行
    echo "[InternetShortcut]\r\nURL=$surl" > $title.url

    # 获取短链接对应的长链接,然后提取其中的视频 ID
    id=$(curl $surl | sed 's|^.*video/||g; s|/.*$||g')
    # 拼接视频信息 json 地址
    jsonurl="https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=$id"
    # 从 json 中提取出视频地址,把 playwm 替换成 play,得到无水印视频地址
    url=$(curl $jsonurl | grep -o '[^"]*playwm[^"]*' | sed 's/playwm/play/g')

    wget $url -O $title.mp4
} < $1

运行 ./dldouyin input.txt 即可。

保存的文件

君子如兰茶未满,旧识思追酒已温。#尼康 #情感 @笔墨伺候.mp4
君子如兰茶未满,旧识思追酒已温。#尼康 #情感 @笔墨伺候.url
你们有多少人没亲眼见过 #萤火虫.mp4
你们有多少人没亲眼见过 #萤火虫.url
你是我三十九度的风,风一样的梦。 #二十四节气 #西瓜.mp4
你是我三十九度的风,风一样的梦。 #二十四节气 #西瓜.url