Tools Ways to rip entire TikTok profile?

NedF

Lurker
Joined
Apr 20, 2022
Posts
19
Reaction score
0
Hey boys, I was wondering if there are any applications, programs or browser extensions that let you rip an entire TikTok profile. I've been looking around for something like that for a while now, but only found old, non-working programs or ones that will only let you download one by one.
If anyone knows something like that it'd be greatly appreciated! Thank you in advance.
 
Toktoktik extension for Firefox browser is exactly what you're looking for. One click downloads all videos without watermark, and it saves your download history so you can use it again to only grab new videos from profiles you previously used it on.
 
if you're looking for a scriptable or automated way, yt-dlp supports entire profiles without watermark.
i just run this from my terminal. obv change the username, and the path. keep the % sections if you don't recognize youtube-dl.
Code:
yt-dlp -o "path/to/your/downloads/%(uploader)s/%(id)s.%(ext)s" https://www.tiktok.com/@ChangeUsernameHere --format "bv*+ba/b"
 
Both work flawlessly, but I think I'll stick with yt-dlp in the future.
Thank you both!
 
%(uploader)s puts the videos in a folder named after the user you ripped from. %(id)s gives the filename the video id, and %(ext)s gives it the proper file extension. .mp4 generally. but it's kind of useless atm since tiktok changed some stuff so yt-dlp is incapable of scraping entire tiktok accounts at the moment. but direct tiktok links do work.
so what i do at the moment is i have the Link Gopher extension installed, then i scroll to the bottom of the tiktok profile, open link gopher and choose "extract links by filter" and then i put /video/, then i copy all of those links, and put them in a file named urls.txt, and then i open a command prompt and run
yt-dlp -a urls.txt --convert-thumbnails jpg -o "%(uploader)s/%(id)s.%(ext)s" --add-metadata --embed-thumbnail
 
I've installed the extension but how do I download? Is it still working?
 
Just tested it out, still working. Go to the profile page you want to download, and at the far right of the address bar will be the Tiktok music note symbol, next to the bookmark star. Click that, and it'll load the preview for all videos then start downloading. Then, next time you click it on that profile, it'll only download videos posted since you last downloaded.
 
Hi there neoliberal, sorry to bother.
So I ended up trying this method, hoping it would work and surprisingly it did.
(Not sure if it stops or bugs when it reaches a certain threshold of videos or something, the profile had like 300 videos and managed to grab them all.)
However it doesn't download them in what, I believe, could be a higher quality.
Ex: Downloading from tiktok directly provides a larger file size, compared to that of the script, not sure if that correlates exactly to higher resolution/quality. (The only real difference, while looking at the property details, are the frame (width & height) and the rates (data, bit and frame)
Anyway, to make a long story short, is this meant to happen? or is there a way to get a higher resolution/quality, if any at all?
Apologies if anything comes across redundant, just trying to get some clarification, as I'm trying familiarize with these programs.
 
just got around to looking into this. it's an issue.
changing my command to
Code:
yt-dlp --format "bv*+ba/b" -o "path/to/your/downloads/%(uploader)s/%(id)s.%(ext)s" https://www.tiktok.com/@ChangeUsernameHere
would work.
although profile pages seem to have broke this morning for yt-dlp, so adding the --format param to my other method should do the trick
 
Since yt-dlp is still broken for crawling user pages, but still works ok for downloading direct video links, I made a bookmarklet for getting them all copied to your clipboard quicker than using other extensions, and typing filters, etc.
Code:
javascript:

function notify(message, username) {
var h2 = document.querySelector('h2[data-e2e="user-title"]');
var h1 = document.querySelector('h1[data-e2e="user-subtitle"]');
h2.innerHTML = message;
h1.innerHTML = 'from @' + username + '.';
}

function send_links_to_list(tiktok_username) {
var link_filter = tiktok_username + '/video';
var links = document.getElementsByTagName('a');
var found_links = [];
for (var i = 0; i < links.length; i++) {
if (links[i].href.indexOf(link_filter) > -1) {
found_links.push(links[i].href);
}
}
return found_links;
}

function main() {
var current_url = window.location.href;

if (current_url.includes("tiktok.com/@")) {

var tiktok_username = current_url.split("@")[1].split("/")[0];

if (tiktok_username.includes("?")) {
tiktok_username = tiktok_username.split("?")[0];
}

var found_links = send_links_to_list(tiktok_username);

var copyListener = event => {
document.removeEventListener("copy", copyListener, true);
event.preventDefault();
let clipboardData = event.clipboardData;
clipboardData.clearData();
clipboardData.setData("text/plain", found_links.join("\n"));
};
document.addEventListener("copy", copyListener, true);
document.execCommand("copy");
document.body.lastElementChild.setAttribute("hidden", "hidden");
document.preventDefault;

window.scrollTo(0, 0);
notify(found_links.length + " links copied", tiktok_username);

} else {
alert("This script only works on TikTok profiles.");
}
}

main();
and then just throw that code into this site to make it a clickable function.
so just load up a tiktok profile, scroll to the bottom, click the bookmarklet, then once you have your links, place them into a text file and run this from your terminal
Code:
yt-dlp -o "path/to/your/tiktoks/%(uploader)s/%(id)s.%(ext)s" -a your_text_file.txt --format "bv*+ba/b"
if anyone who's proficient at js would add the scrolling to bottom step to it, please do so. I couldn't get a function for that to work right, since I'm a noob at js, and pretty much using copilot to write this for me, since all i know is python.
 
thanks a lot dude, it works :peepoClap::peepoClap::peepoClap::peepoClap::peepoClap:
 
Hey guys! Can someone guide me through this? Neither of the two ways are working for me.
Which terminal should I enter the command line in? I tried in command prompt and VS but errors pop up. Can someone help me with figuring out what I'm doing wrong?
Sorry for the unnecessary trouble 😅
 
yt-dlp has been broken for scraping entire profiles for a bit, but someone forked it and fixed it.
1. make sure python 3 is installed and in your path (its a checkbox you need to select during installation)
2. then enter this command in your cmd or terminal.
Code:
pip install --force-reinstall https://github.com/redraskal/yt-dlp/archive/refs/heads/fix/tiktok-user.zip
3. then close any terminals/cmd prompts you have open, and then reopen them to update your paths/profile.
4. then run this command in either your cmd or terminal
Code:
playwright install
5. then run this command in either your cmd or terminal
Code:
yt-dlp --format "bv*+ba/b" -o "path/to/your/downloads/%(uploader)s/%(id)s.%(ext)s" https://www.tiktok.com/@ChangeUsernameHere
updated on 2022-11-14
 
This would actually be very easy for me to include in my mass downloader. I just don't know if there is any interest.
 
Back
Top