Obscuraworks
Obscuraworks.
Home
9128909·Viewing revision r1 — Initial revision
Back to latest revision
← Explore
JavaScript·public

Tiktok Downloader

Scrape for : https://freetiktokdownload.com/id

ACHMAT MUWAFIKACHMAT MUWAFIK
created 5/13/2026· updated 5/13/2026
Files1
Size13 KB
Lines84
Revisions2
JavaScript#dl#downloader
ZIP

Files

1 file· 13 KB
tiktokdl.js· 84L · 13 KB
const fetch = require('node-fetch');
const FormData = require('form-data');

const scrapeFreeTikTok = async (url) => {
  const userAgent = 'Mozilla/5.0 (Linux; Android 10; K) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Mobile Safari/537.36';

    try {
        const initResponse = await fetch('https://freetiktokdownload.com/id', {
              method: 'GET',
                    headers: {
                            'User-Agent': userAgent
                                  }
                                      });

                                          const setCookieHeader = initResponse.headers.get('set-cookie') || '';

                                              const matchXsrf = setCookieHeader.match(/XSRF-TOKEN=([^;]+)/);
                                                  const matchSession = setCookieHeader.match(/tiktok_video_downloader_download_tiktok_videos_without_watermark_session=([^;]+)/);

                                                      const cookies = [];

                                                          if (matchXsrf) cookies.push(matchXsrf[0]);
                                                              if (matchSession) cookies.push(matchSession[0]);

                                                                  const cookieString = cookies.join('; ');

                                                                      if (!cookieString) {
                                                                            return {
                                                                                    status: 'error',
                                                                                            message: 'Gagal mendapatkan sesi cookie.'
                                                                                                  };
                                                                                                      }

                                                                                                          const html = await initResponse.text();

                                                                                                              const tokenMatch =
                                                                                                                    html.match(/<meta\s+name="csrf-token"\s+content="([^"]+)"/i) ||
                                                                                                                          html.match(/name="_token"\s+value="([^"]+)"/i);

                                                                                                                              if (!tokenMatch) {
                                                                                                                                    return {
                                                                                                                                            status: 'error',
                                                                                                                                                    message: 'Gagal mengambil CSRF token.'
                                                                                                                                                          };
                                                                                                                                                              }

                                                                                                                                                                  const csrfToken = tokenMatch[1];

                                                                                                                                                                      const form = new FormData();
                                                                                                                                                                          form.append('_token', csrfToken);
                                                                                                                                                                              form.append('url', url);

                                                                                                                                                                                  const fetchResponse = await fetch('https://freetiktokdownload.com/fetch', {
                                                                                                                                                                                        method: 'POST',
                                                                                                                                                                                              headers: {
                                                                                                                                                                                                      'User-Agent': userAgent,
                                                                                                                                                                                                              'Accept': 'application/json',
                                                                                                                                                                                                                      'Accept-Encoding': 'gzip, deflate, br, zstd',
                                                                                                                                                                                                                              'Origin': 'https://freetiktokdownload.com',
                                                                                                                                                                                                                                      'Referer': 'https://freetiktokdownload.com/id',
                                                                                                                                                                                                                                              'Cookie': cookieString,
                                                                                                                                                                                                                                                      ...form.getHeaders()
                                                                                                                                                                                                                                                            },
                                                                                                                                                                                                                                                                  body: form
                                                                                                                                                                                                                                                                      });

                                                                                                                                                                                                                                                                          const result = await fetchResponse.json();

                                                                                                                                                                                                                                                                              return result;

                                                                                                                                                                                                                                                                                } catch (error) {
                                                                                                                                                                                                                                                                                    return {
                                                                                                                                                                                                                                                                                          status: 'error',
                                                                                                                                                                                                                                                                                                message: error.message
                                                                                                                                                                                                                                                                                                    };
                                                                                                                                                                                                                                                                                                      }
                                                                                                                                                                                                                                                                                                      };

                                                                                                                                                                                                                                                                                                      // contoh pemanggilan
                                                                                                                                                                                                                                                                                                      (async () => {
                                                                                                                                                                                                                                                                                                        const res = await scrapeFreeTikTok('https://www.tiktok.com/@langitpenuhcerita/video/7638546161988635924?_r=1&u_code=e44aadm1a6m8m8&region=ID&mid=7638546211150039816&preview_pb=0&sharer_language=en&_d=ejebffjdbf70ih&share_item_id=7638546161988635924&source=h5_t&timestamp=1778646099&user_id=7148412173672350746&sec_user_id=MS4wLjABAAAAmS5elyAJpu9dWjBWNMnOAPI-yr83K397whqS6i4uPpAfp_5K6xfB22slCMojRIq-&item_author_type=2&social_share_type=0&utm_source=copy&utm_campaign=client_share&utm_medium=android&share_iid=7625575522260666119&share_link_id=92cf852e-7f1a-49a0-ac9b-2f63d6cea765&share_app_id=1180&ugbiz_name=MAIN&ug_btm=b2001&link_reflow_popup_iteration_sharer=%7B%22click_empty_to_play%22%3A1%2C%22dynamic_cover%22%3A1%2C%22follow_to_play_duration%22%3A-1.0%2C%22profile_clickable%22%3A1%7D&enable_checksum=1');
                                                                                                                                                                                                                                                                                                          console.log(res);
                                                                                                                                                                                                                                                                                                            return(res);
                                                                                                                                                                                                                                                                                                            })();

Live metrics

Stars
0
Views
20
Copies
1
Forks
0

Revisions

View all →
  1. e72ae0d · r25/13/2026

    Update r2

    1 files+76-63
  2. 9128909 · r15/13/2026

    Initial revision

    1 files+84-0

Permalink

/code/uhzyubm-tiktok-downloader
Latest commit
/code/uhzyubm-tiktok-downloader/e72ae0d