import requests, json, urllib.request, subprocess, os, re

shortcode = "DcThzG6MvWS"
url = f"https://www.instagram.com/reel/{shortcode}/"

# Consulta a API pública do Instagram Embed para pegar a URL oficial do vídeo/imagem
embed_url = f"https://www.instagram.com/p/{shortcode}/embed/captioned/"
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36"}
r = requests.get(embed_url, headers=headers)

job_dir = "/tmp/scrapling-jobs/job_avatarhype_live"
os.makedirs(f"{job_dir}/frames", exist_ok=True)

# No embed, o vídeo ou capa em alta resolução fica exposto diretamente
images = re.findall(r'https:[^"\'\s<>\\]+cdninstagram\.com[^"\'\s<>\\]*', r.text)
cleaned_images = [img.replace(r'\u0026', '&').replace(r'\/', '/') for img in images if 'jpg' in img or 'mp4' in img]

print(f"Total midias encontradas via Embed: {len(cleaned_images)}")

if cleaned_images:
    for i, media_url in enumerate(cleaned_images[:5]):
        ext = "mp4" if "mp4" in media_url else "jpg"
        dest = f"{job_dir}/media_{i+1}.{ext}"
        try:
            urllib.request.urlretrieve(media_url, dest)
            print(f"[+] Baixado na VPS: {dest} ({os.path.getsize(dest)} bytes)")
        except Exception as e:
            print(f"Erro ao baixar {media_url}: {e}")

    # Lista o que foi salvo
    saved_files = os.listdir(job_dir)
    print(f"[+] Arquivos no Job Temporário da VPS: {saved_files}")
