Skip to content

Instantly share code, notes, and snippets.

@yi-yun
Last active July 18, 2024 04:54
Show Gist options
  • Select an option

  • Save yi-yun/14eb9124a4d5732a2b6bffe09b5eec33 to your computer and use it in GitHub Desktop.

Select an option

Save yi-yun/14eb9124a4d5732a2b6bffe09b5eec33 to your computer and use it in GitHub Desktop.
抖音下载(自用)
const axios = require('axios');
const errwin = /[\\\\/:*?\"<>|]/g;
const subwin = ``;
const cp = require('child_process');
// 获取作品ID
var GetID = function (dyurl) {
return new Promise((resolve, reject) => {
try {
axios.get(dyurl, {
headers: {
'user-agent': ' Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'
}
}).then(function (response) {
console.log(response.request.res.responseUrl)
var revideo = /video\/(\d*)/
var item_ids = revideo.exec(response.request.res.responseUrl)[1]
// console.log(item_ids)
resolve(item_ids)
}).catch(function (error) {
console.log(error + ' item_ids获取错误')
next(error)
reject(error)
// return 0;
})
} catch (error) {
console.log(error)
}
})
}
var GetInfo = function (item_ids) {
console.log('GetInfo ok')
return new Promise((resolve, reject) => {
axios.get(`https://www.iesdouyin.com/web/api/v2/aweme/iteminfo/?item_ids=${item_ids}`, {
headers: {
'user-agent': ' Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1'
}
}
).then(function (response) {
console.log('item_ids ok')
// console.log("response", response.data)
let {
status_code,
item_list
} = response.data
if (status_code === 0) {
// 无水印视频链接
let url = item_list[0].video.play_addr.url_list[0].replace(
'playwm',
'play'
)
// 转换成1080p
url = url.replace('720p','1080p')
console.log('1080p',url)
// 视频文案
let desc = item_list[0].desc;
// 文案过滤非法字符
desc.replace(errwin, subwin);
console.log('video play url', url)
console.log('video desc', desc)
var data = ({
url: url,
desc: desc
})
resolve(data)
} else {
reject(status_code)
}
})
.catch(function (error) {
console.log(error)
res.render('error');
reject(error)
})
})
}
let result= GetID('https://v.douyin.com/rQ6rw8q/').then(item_ids => {
// console.log(item_ids)
GetInfo(item_ids).then(data => {
var filename="/Users/michael/Documents/搬运/"+data.desc+".mp4";
var uri=data.url;
var agent="--user-agent 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36'";
let command = `curl -L -o '${filename}' '${uri}' ${agent}`;
// console.log(command)
let result = cp.execSync(command);
console.log("下载成功");
});
}).catch((error) =>{
console.log('22222',error)
next(error)
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment