UNPKG

@riqtu/tiktok-scraper

Version:

Modified TikTok Scraper with proxy support

59 lines (58 loc) 1.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isParsedOptions = isParsedOptions; exports.findAweme = findAweme; exports.parseAweme = parseAweme; function isParsedOptions(options) { return options?.parse === true; } function getters(data, keys) { const obj = {}; keys.forEach((key) => { const nestedKeys = key.split("."); const firstKey = nestedKeys.shift(); if (firstKey !== undefined) { const value = nestedKeys.reduce((acc, nestedKey) => acc?.[nestedKey], data[firstKey]); obj[firstKey] = value; } }); return obj; } function findAweme(data, value) { return data.find((item) => item.aweme_id === value); } function parseAweme(data, options) { const parsed = { aweme_id: data.aweme_id, region: data.region, desc: data.desc, create_time: data.create_time, author: getters(data.author, ["nickname", "unique_id", "signature"]), duration: data.video?.duration || 0, download: { covers: data.video?.cover?.url_list || [], nowm: data.video?.download_addr?.url_list?.[0] || "", wm: data.video?.download_addr?.url_list?.[1] || "", music: data.music?.play_url?.url_list?.[0] || "", music_info: getters(data.music, [ "id", "title", "author", "album", "cover_large.url_list", ]), }, }; if (options && options.keys) { const parsedData = { ...parsed, }; for (const key of options.keys) { if (key in data) { parsedData[key] = data[key]; } } return parsedData; } return parsed; }