""" Script to download all IndeeHub film images and metadata Run this in the browser console on https://indeehub.studio/screening-room?type=film Then copy the output and save it to a file """ # Paste this in browser console: console_script = """ // Extract all film data from screening room const films = Array.from(document.querySelectorAll('a[href^="/film/"]')).map(card => { const img = card.querySelector('img'); const title = card.querySelector('h3, [class*="title"]')?.textContent?.trim(); const href = card.getAttribute('href'); return { id: href.replace('/film/', ''), title: title, link: 'https://indeehub.studio' + href, posterSrc: img?.src, posterDataSrc: img?.getAttribute('data-src'), alt: img?.alt }; }); console.log('Found ' + films.length + ' films'); console.log(JSON.stringify(films, null, 2)); // Download this data const dataStr = JSON.stringify(films, null, 2); const dataBlob = new Blob([dataStr], {type: 'application/json'}); const url = URL.createObjectURL(dataBlob); const link = document.createElement('a'); link.href = url; link.download = 'indeedhub-films.json'; link.click(); """ print("STEP 1: Copy and paste this into browser console:") print("="*60) print(console_script) print("="*60) print("\nSTEP 2: The script will download 'indeedhub-films.json'") print("\nSTEP 3: Then run the image download script below") # Python script to download images import json import os import requests from pathlib import Path def download_images(): """Download all film images from IndeeHub""" # Load the JSON file with open('indeedhub-films.json', 'r') as f: films = json.load(f) # Create directories Path('public/images/films/posters').mkdir(parents=True, exist_ok=True) Path('public/images/films/backdrops').mkdir(parents=True, exist_ok=True) print(f"Downloading images for {len(films)} films...") for film in films: film_id = film['id'] print(f"Downloading: {film['title']}...") # Download poster (640px) poster_url = f"https://indeehub.studio/_next/image?url=%2Fapi%2Fposters%2F{film_id}&w=640&q=75" try: response = requests.get(poster_url) if response.status_code == 200: with open(f'public/images/films/posters/{film_id}.jpg', 'wb') as f: f.write(response.content) print(f" ✓ Poster downloaded") except Exception as e: print(f" ✗ Poster failed: {e}") # Download backdrop (1920px) backdrop_url = f"https://indeehub.studio/_next/image?url=%2Fapi%2Fbackdrops%2F{film_id}&w=1920&q=75" try: response = requests.get(backdrop_url) if response.status_code == 200: with open(f'public/images/films/backdrops/{film_id}.jpg', 'wb') as f: f.write(response.content) print(f" ✓ Backdrop downloaded") except Exception as e: print(f" ✗ Backdrop failed: {e}") print("\n✅ Download complete!") if __name__ == '__main__': download_images()