KEMBAR78
Douyin Cod 1 | PDF | Microsoft Windows | Software Engineering
0% found this document useful (0 votes)
204 views2 pages

Douyin Cod 1

This document defines functions to download videos from Douyin (TikTok) accounts. It includes: - A getid function that makes an API call to fetch video data with a user ID and cursor. - A download function that takes a video URL, ID, and description to download the video file. - A waitforme function that pauses execution for a specified time in milliseconds. - A run function that calls getid in a loop to retrieve all video data, calls download to save each one, and handles errors.

Uploaded by

lihour070
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
204 views2 pages

Douyin Cod 1

This document defines functions to download videos from Douyin (TikTok) accounts. It includes: - A getid function that makes an API call to fetch video data with a user ID and cursor. - A download function that takes a video URL, ID, and description to download the video file. - A waitforme function that pauses execution for a specified time in milliseconds. - A run function that calls getid in a loop to retrieve all video data, calls download to save each one, and handles errors.

Uploaded by

lihour070
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

var getid=async function(sec_user_id,max_cursor){

var res=await fetch("https://www.douyin.com/aweme/v1/web/aweme/post/?


device_platform=webapp&aid=6383&channel=channel_pc_web&sec_user_id="+sec_user_id+"&
max_cursor="+max_cursor, {
"headers": {
"accept": "application/json, text/plain, */*",
"accept-language": "vi",
"sec-ch-ua": "\"Not?A_Brand\";v=\"8\", \"Chromium\";v=\"108\", \"Microsoft
Edge\";v=\"108\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"Windows\"",
"sec-fetch-dest": "empty",
"sec-fetch-mode": "cors",
"sec-fetch-site": "same-origin"
},
"referrer": "https://www.douyin.com/user/MS4wLjABAAAAu8qwDm1-muGuMhZZ-
tVzyPVWlUxIbQRNJN_9k83OhWU",
"referrerPolicy": "strict-origin-when-cross-origin",
"body": null,
"method": "GET",
"mode": "cors",
"credentials": "include"
});
try{
res=await res.json();
}catch(e){
res=await getid(sec_user_id,max_cursor);
console.log(e);
}
return res;
}

var download=async function(url, aweme_id, desc){


var file_name = aweme_id + "-" + desc + ".mp4";
var data=await fetch(url, {
"headers": {
"accept": "*/*",
"accept-language": "vi,en-US;q=0.9,en;q=0.8",
"range": "bytes=0-",
"sec-ch-ua": "\"Not?A_Brand\";v=\"8\", \"Chromium\";v=\"108\", \"Microsoft
Edge\";v=\"108\"",
"sec-ch-ua-mobile": "?0",
"sec-ch-ua-platform": "\"Windows\"",
"sec-fetch-dest": "video",
"sec-fetch-mode": "cors",
"sec-fetch-site": "cross-site"
},
"referrer": "https://www.douyin.com/",
"referrerPolicy": "strict-origin-when-cross-origin",
"body": null,
"method": "GET",
"mode": "cors",
"credentials": "omit"
});
data=await data.blob();
var a = document.createElement("a");
a.href = window.URL.createObjectURL(data);
a.download = file_name;
a.click();
}

var waitforme=function(millisec) {
return new Promise(resolve => {
setTimeout(() => { resolve('') }, millisec);
})
}

var run=async function(){


var result=[];
var hasMore=1;
var sec_user_id=location.pathname.replace("/user/","");
var max_cursor=0;
var download_from=prompt("Enter id video(Enter 0 if want to download all
video):","");
if(download_from==null || download_from=="") {
alert("Please, Enter id of video!");
return;
}
while(hasMore==1){
var moredata=await getid(sec_user_id,max_cursor);
hasMore=moredata['has_more'];
max_cursor=moredata['max_cursor'];
for(var i in moredata['aweme_list']){
if(moredata['aweme_list'][i]['aweme_id'] == download_from){
hasMore=0;
break;
}
if(moredata['aweme_list'][i]['video']['play_addr']['url_list']
[0].startsWith("https"))
result.push([moredata['aweme_list'][i]['video']['play_addr']['url_list']
[0],moredata['aweme_list'][i]['aweme_id'],moredata['aweme_list'][i]['desc']]);
else
result.push([moredata['aweme_list'][i]['video']['play_addr']['url_list']
[0].replace("http","https"),moredata['aweme_list'][i]
['aweme_id'],moredata['aweme_list'][i]['desc']]);
console.clear();
console.log("Number of videos: "+result.length);
}
}
for(var i=result.length-1;i>=0;i--){
await waitforme(5000);
try{download(result[i][0],result[i][1],result[i][2]);}catch{}
}
}
run();

You might also like