Skip to content

Instantly share code, notes, and snippets.

View adrianhorning08's full-sized avatar

Adrian Horning adrianhorning08

View GitHub Profile
@adrianhorning08
adrianhorning08 / index.js
Created September 22, 2025 18:42
Download TikTok Raw Video
const res = await axios.get(
"https://api.scrapecreators.com/v2/tiktok/video?url=https://www.tiktok.com/@stoolpresidente/video/7552934044887944478",
{
headers: {
"x-api-key": process.env.MY_API_KEY,
},
}
);
const rawVideo = res?.data?.aweme_detail?.video?.play_addr?.url_list?.[0];
console.log("rawVideo", rawVideo);
@adrianhorning08
adrianhorning08 / index.js
Last active September 22, 2025 18:46
Download file and upload to supabase
import fs from 'fs';
import { createClient } from '@supabase/supabase-js';
const SUPABASE_URL = process.env.SUPABASE_URL;
const SUPABASE_KEY = process.env.SUPABASE_KEY;
const supabase = createClient(SUPABASE_URL, SUPABASE_KEY);
const filePath = 'video.mp4';
const bucket = 'videos'; // change to your bucket
const storagePath = `uploads/${filePath}`;
@adrianhorning08
adrianhorning08 / index.js
Created September 18, 2025 17:21
YouTube Transcript Parser
const languageMenu = findKey(transcriptRes, "languageMenu");
console.log("languageMenu", languageMenu);
const language =
languageMenu?.sortFilterSubMenuRenderer?.subMenuItems?.[0]?.title?.split(
" "
)?.[0];
const transcriptRenderer = findKey(transcriptRes, "transcriptRenderer")
?.content?.transcriptSearchPanelRenderer?.body?.transcriptSegmentListRenderer?.initialSegments?.map(
(tr) => tr?.transcriptSegmentRenderer
@adrianhorning08
adrianhorning08 / index.js
Created September 16, 2025 19:33
Duck Duck Go parser
import * as cheerio from "cheerio";
function jsonifyDuckDuckGo(html) {
try {
const $ = cheerio.load(html);
const results = [];
$(".results_links")
.get()
.forEach((result) => {
@adrianhorning08
adrianhorning08 / index.js
Created September 11, 2025 22:57
Find Key in JS
// Function to recursively search for the key
export function findKey(obj, keyToFind) {
try {
if (obj.hasOwnProperty(keyToFind)) {
return obj[keyToFind];
}
for (let key in obj) {
if (typeof obj[key] === "object" && obj[key] !== null) {
let result = findKey(obj[key], keyToFind);
@adrianhorning08
adrianhorning08 / index.json
Created September 9, 2025 19:19
TIkTok Shop Data for Brazil
{
"success": true,
"categories": [
{
"category_id": "700645",
"level": 1,
"is_leaf": false,
"parent_id": "0",
"category_name": "Saúde",
"name_key": "magellan_700645"
@adrianhorning08
adrianhorning08 / index.js
Created August 27, 2025 21:35
TikTok Stuff
const fudgeFactor = -6;
const captchaResponse = await solveCaptcha(puzzleImageUrl, pieceImageUrl);
console.log("captchaResponse", captchaResponse);
await dragElementHorizontal(
page,
".secsdk-captcha-drag-icon",
captchaResponse.slideXProportion * puzzleWidth + fudgeFactor
@adrianhorning08
adrianhorning08 / index.js
Created August 27, 2025 21:33
TikTok stuff
async function fetchAndEncodeImage(url) {
const response = await axios.get(url, { responseType: "arraybuffer" });
return Buffer.from(response.data, "binary").toString("base64");
}
async function solveCaptcha(puzzleImageUrl, pieceImageUrl) {
try {
const puzzleBase64 = await fetchAndEncodeImage(puzzleImageUrl);
const pieceBase64 = await fetchAndEncodeImage(pieceImageUrl);
@adrianhorning08
adrianhorning08 / index.js
Created August 27, 2025 21:31
TikTok Script
const puzzleImage = await page.$("#captcha-verify-image");
const puzzleImageUrl = await puzzleImage.evaluate((el) => el.src);
console.log("puzzleImageUrl", puzzleImageUrl);
const pieceImage = await page.$(".captcha_verify_img_slide");
const pieceImageUrl = await pieceImage.evaluate((el) => el.src);
console.log("pieceImageUrl", pieceImageUrl);
const elementHandle = await page.$(".captcha_verify_img--wrapper");
const box = await elementHandle.boundingBox();
@adrianhorning08
adrianhorning08 / Dockerfile
Created May 1, 2025 18:19
Docker for puppeteer real browser
FROM node:20-bullseye
# Install Chrome and xvfb
RUN apt-get update && apt-get install -y \
chromium \
xvfb \
&& rm -rf /var/lib/apt/lists/*
WORKDIR /usr/src/app