# Privacy Scraper (`ultramarine_freezer/tele123`) Actor

Descarga imágenes y videos de perfiles de Privacy.com.br con opción de descarga masiva en ZIP

- **URL**: https://apify.com/ultramarine_freezer/tele123.md
- **Developed by:** [JIGSAW](https://apify.com/ultramarine_freezer) (community)
- **Categories:** Social media, Automation, Other
- **Features:** Full permissions
- **Stats:** 657 total users, 7 monthly users, 1.8% runs succeeded, 5 bookmarks
- **User rating**: 2.85 out of 5 stars

## Pricing

from $10.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🎯 Privacy.com.br Scraper

El único y más completo scraper de contenido de Privacy.com.br. Descarga todo el contenido multimedia, incluyendo videos e imágenes. Empaquetado ZIP automatizado para descargar con un click.

***

### ✨ Características Principales

#### 🚀 Descarga Masiva

- **Descarga en ZIP:** Todos los archivos organizados en paquetes descargables.
- **Imágenes y Videos:** Soporte completo para ambos formatos.
- **Contenido Ilimitado:** Descarga perfiles completos sin límites.
- **Optimización Adaptativa:** Se ajusta automáticamente según la memoria disponible y tamaño del perfil.

#### 🛡️ Seguro y Confiable

- **Login Seguro:** Autenticación con token temporal.
- **Sesiones Persistente:** Usa tu sesión activa de Privacy.
- **Contenido Protegido:** Respeta contenido de pago bloqueado.
- **Protección OOM:** Sistema inteligente que previene errores de memoria.

#### ⚡ Fácil de Usar

- **Interfaz Intuitiva:** Configuración en minutos.
- **Resultados Organizados:** Dataset con vistas filtradas.
- **Descarga Directa:** Links de descarga con un clic.
- **Configuración Automática:** El scraper detecta y optimiza según tus recursos.

***

### 💾 Requisitos de Memoria

#### ⚠️ Memoria Mínima Requerida: 8 GB

Este actor requiere **al menos 8 GB de RAM** para funcionar correctamente. Si intentas ejecutarlo con menos memoria, **fallará inmediatamente** con un mensaje de error trilingüe explicando el problema.

#### 📊 Recomendaciones por Tamaño de Perfil

| Tamaño del perfil | RAM mínima | RAM recomendada | Velocidad esperada | Notas |
|-------------------|------------|-----------------|-------------------|-------|
| **Hasta 200 archivos** | 8 GB | 16 GB | ⚡ Normal | Perfecto con 8 GB |
| **200-500 archivos** | 16 GB | 32 GB | 🐢 Reducida con 8-16 GB | El actor reduce paralelismo automáticamente |
| **Más de 500 archivos** | 32 GB | 32 GB+ | 🐌 Un poco lenta | Se recomienda dividir en múltiples descargas |

#### ⚙️ Optimización Automática Inteligente

El actor incluye un **sistema de protección anti-OOM** que detecta automáticamente:

1. **Tu memoria disponible** (8 GB, 16 GB, 32 GB, etc.)
2. **El tamaño del perfil** (cantidad de archivos a descargar)

Y ajusta el **paralelismo dinámicamente** para prevenir errores:

##### 🛡️ Reglas de Protección Automática:

- **Perfil grande (>200 archivos) + RAM baja (<16 GB)**
  - ⚠️ Paralelismo ZIP reducido a **2**
  - 💡 Advertencia visible en logs

- **Perfil enorme (>400 archivos) + RAM baja (<32 GB)**
  - 🔴 Paralelismo ZIP reducido a **1** (máxima estabilidad)
  - 💡 Advertencia visible en logs

Cuando esto suceda, verás mensajes claros explicando:

- Por qué se redujo la velocidad
- Cómo puedes mejorarla (aumentar RAM o dividir descarga)

#### 💡 Consejos Prácticos:

✅ **Perfiles pequeños (<100 archivos)**: 8 GB es perfecto

✅ **Perfiles medianos (100-300 archivos)**: Usa 16 GB para mejor velocidad

✅ **Perfiles grandes (>300 archivos)**: Usa 32 GB

#### ⚠️ Nota sobre OOM (Out of Memory)

Aunque el actor está optimizado con protecciones anti-OOM, en **casos extremos** (perfiles con cientos de videos muy pesados de 500+ MB cada uno), puede ocurrir OOM incluso con 8 GB.

**Si esto te sucede:**

1. ✅ Aumenta la RAM a 16 GB o 32 GB
2. ✅ Divide la descarga en múltiples ejecuciones más pequeñas
3. ✅ Contacta soporte si el problema persiste con 32 GB

***

### 🎯 Cómo Empezar (¡Método Fácil!)

Este scraper ahora usa un método de **login directo**. Ya no necesitas generar un archivo `storageState.json` manualmente.

#### 🚀 Paso 1: Configurar el Actor

Ve a la pestaña **Input** y rellena los siguientes campos:

##### Inputs Obligatorios:

- **`profile_url`**: La URL completa del perfil que quieres descargar.
  - *Ejemplo:* `https://privacy.com.br/profile/nombredeusuario`
  - **¡Error Común!** NO uses una URL de `checkout`.

- **`email`**: Tu email de inicio de sesión en Privacy.com.br.

- **`password`**: Tu contraseña de Privacy.com.br.
  - *(Tu contraseña se maneja como un secreto y se encripta. El desarrollador no puede verla).*

##### Inputs Opcionales:

- **`download_images`**: Descargar imágenes (default: ✅).
- **`download_videos`**: Descargar videos (default: ✅).
- **`lote_descarga_videos`**: Videos a descargar simultáneamente.
  - **🤖 AUTOMÁTICO (Recomendado):** Deja este campo **vacío** y el scraper se adaptará automáticamente:
    - **8 GB de RAM:** 4 videos paralelos (modo conservador)
    - **16 GB de RAM:** 6 videos paralelos (modo balanceado)
    - **32 GB de RAM:** 7 videos paralelos (modo optimizado)
  - **⚙️ MANUAL (Avanzado):** Si deseas un control específico, ingresa un número entre 1-10:
    - `1-2`: Muy lento pero máxima estabilidad
    - `3-5`: Balance entre velocidad y estabilidad
    - `6+`: Rápido pero puede causar errores en perfiles muy grandes

***

#### 📥 Paso 2: Ejecutar y Descargar

1. Haz clic en **Start**.
2. El actor detectará automáticamente tu memoria disponible y optimizará la configuración.
3. **Si tu perfil es grande**, verás advertencias indicando que se redujo el paralelismo para evitar errores.
4. Iniciará sesión, raspará el perfil y descargará todo.
5. Cuando termine (**Status: Succeeded**), ve a la pestaña **Storage** de la ejecución.
6. En **Key-Value Store**, encontrarás:
   - **`DOWNLOAD_LINKS_[perfil].html`**: Página HTML con todos los enlaces de descarga organizados (ejemplo: `DOWNLOAD_LINKS_cristianoronaldo.html`) ✨
   - `ZIP_IMAGES_[perfil]_part1.zip`, `part2.zip`, etc.: ZIPs con las imágenes
   - `ZIP_VIDEOS_[perfil]_part1.zip`, `part2.zip`, etc.: ZIPs con los videos

***

### 🧠 Sistema de Optimización Adaptativa

El scraper incluye detección inteligente de memoria que optimiza automáticamente el rendimiento:

#### 📊 Tiers de Memoria

| Memoria Disponible | Tier | Videos Paralelos | ZIPs Paralelos | Tamaño ZIP | Tiempo Estimado\* |
|-------------------|------|------------------|----------------|------------|------------------|
| **8 GB** | LOW | 4 | 4 | 400 MB | ~23-25 min |
| **16 GB** | MEDIUM | 6 | 6 | 550 MB | ~18-20 min |
| **32 GB** | HIGH | 7 | 9 | 700 MB | ~15-16 min |

\*Para un perfil con ~15 GB de contenido (116 videos + 45 imágenes)

#### 🎯 Ventajas del Sistema Adaptativo

- **Sin configuración manual:** Funciona perfectamente "out of the box"
- **Máximo rendimiento:** Usa los recursos disponibles de forma óptima
- **Protección anti-OOM:** Configuraciones conservadoras que evitan errores de memoria
- **Ajuste dinámico:** Reduce paralelismo automáticamente en perfiles grandes
- **Flexible:** Puedes sobrescribir manualmente si lo deseas

***

### 🔐 Método Avanzado (Plan B): Usar Storage State

Si el login directo falla puedes usar el método manual.

1. Deja los campos `email` y `password` **vacíos**.
2. Ejecuta el script generador (ver abajo) en tu PC para crear un `storageState.json`.
3. Pega el contenido de ese archivo en el campo **"🔑 Storage State (Avanzado - Opcional)"**.
4. **Importante:** Si usas este método y también quieres descargar videos, **aún debes** proporcionar tu `email` y `password` en los campos normales.

**📋 Requisitos Previos (Solo la primera vez):**

1. **Python Instalado:** Descárgalo desde [python.org](https://www.python.org/downloads/) (marca "Add Python to PATH").
2. **Abrir Terminal/cmd:**
3. **Instalar Bibliotecas:** Ejecuta estos dos comandos:
   ```
   pip install playwright asyncio
   ```
   ```
   playwright install chromium
   ```

**▶️ Ejecutando el Script Generador:**

1. **Guarda el Código:** Copia el siguiente código y guárdalo como `generar_sesion.py`.
   ```
   import asyncio
   import json
   import os
   from playwright.async_api import async_playwright

   async def generate_storage_state():
       print("""
       🎯 PRIVACY.COM.BR - GENERADOR DE SESIÓN (MODO AVANZADO)
       ======================================================
       INSTRUCCIONES:
       1. Se abrirá un navegador.
       2. Inicia sesión MANUALMENTE en privacy.com.br.
       3. Resuelve cualquier CAPTCHA o 2FA.
       4. Cuando estés logueado, regresa aquí y presiona Enter.
       """)
       
       input(">>> Presiona Enter para abrir el navegador...")
       
       async with async_playwright() as p:
           browser = await p.chromium.launch(headless=False)
           context = await browser.new_context()
           page = await context.new_page()
           
           print("🌐 Abriendo privacy.com.br...")
           await page.goto('https://privacy.com.br', wait_until='networkidle')
           
           print("\n🔐 Inicia sesión MANUALMENTE en el navegador...")
           input("\n>>> ✅ Cuando hayas iniciado sesión, regresa AQUÍ y presiona Enter...")
           
           print("\n💾 Guardando estado de la sesión...")
           storage_state = await context.storage_state()
           
           file_path = 'storageState.json'
           with open(file_path, 'w', encoding='utf-8') as f:
               json.dump(storage_state, f, indent=2, ensure_ascii=False)
           
           print(f"\n🎉 ¡Archivo '{os.path.abspath(file_path)}' GENERADO!")
           print("1. Abre este archivo con un editor de texto (Bloc de Notas).")
           print("2. Copia TODO el contenido (Ctrl+A, Ctrl+C).")
           print("3. Pégalo en el campo 'Storage State (Avanzado)' de Apify.")
           
           await browser.close()

   if __name__ == "__main__":
       asyncio.run(generate_storage_state())
   ```

2. **Ejecuta el Script:**
   ```
   python generar_sesion.py
   ```
   ![Terminal Ejecutando Script](https://raw.githubusercontent.com/axel845845/Privacy.com.br-Downloader-Scraper-Mass-Download-Images-and-Videos/main/Sin%20t%C3%ADtulo.png)

3. **Sigue las instrucciones:** Inicia sesión en el navegador que se abre y luego presiona Enter en la terminal.
   ![Terminal Confirmando Creación](https://raw.githubusercontent.com/axel845845/Privacy.com.br-Downloader-Scraper-Mass-Download-Images-and-Videos/main/t1.png)
   ![Explorador Mostrando Archivo](https://raw.githubusercontent.com/axel845845/Privacy.com.br-Downloader-Scraper-Mass-Download-Images-and-Videos/main/storage%20state%20creado.png)

4. **Copia y Pega:**
   Abre el `storageState.json`, selecciona **TODO** (Ctrl+A) y cópialo (Ctrl+C).

   ![Mostrando Archivo 1](https://raw.githubusercontent.com/axel845845/Privacy.com.br-Downloader-Scraper-Mass-Download-Images-and-Videos/main/storage%20copiado%201.png)

   Pégalo en el campo `Storage State (Avanzado - Opcional)` en Apify.

   ![Insertar Storage State](https://raw.githubusercontent.com/axel845845/Privacy.com.br-Downloader-Scraper-Mass-Download-Images-and-Videos/main/insertar%20storage%20state.png)

***

### 📊 Resultados y Salida

#### 🗂️ Estructura de Resultados

##### 🌐 Página de Descargas HTML

En **Storage → Key-Value Store**, encontrarás:

- **`DOWNLOAD_LINKS_[perfil].html`**: Abre este archivo para ver una página web elegante con:
  - Estadísticas de la descarga
  - Enlaces de descarga directa organizados por tipo (imágenes/videos)
  - Información de cada ZIP (tamaño, cantidad de archivos)
  - **Botones de descarga con un clic** - ¡Funcionan directamente!

##### 📦 Archivos ZIP (En Key-Value Store):

- **Para Imágenes:**
  - `ZIP_IMAGES_[perfil]_[timestamp]_part1.zip`
  - Generalmente 1 solo ZIP (las imágenes son más pequeñas)

- **Para Videos:**
  - `ZIP_VIDEOS_[perfil]_[timestamp]_part1.zip`
  - `ZIP_VIDEOS_[perfil]_[timestamp]_part2.zip`
  - ... (divididos en partes de 400-700 MB según tu memoria disponible)

##### 📊 Dataset Organizado (En Storage → Dataset):

- **Vista "Default"**: Lista completa de cada archivo descargado con sus metadatos.
- Cada archivo (imagen/video) se guarda también **individualmente** en el Key-Value Store con su propia URL de descarga directa.

#### 📋 Campos del Dataset (por cada archivo descargado)

| Campo             | Descripción                                          | Ejemplo                     |
| :---------------- | :--------------------------------------------------- | :-------------------------- |
| **`type`** | Tipo de archivo                                      | `image` / `video`           |
| **`filename`** | Nombre del archivo generado                          | `0015_imagen_abc123.jpg`    |
| **`profile`** | Nombre del perfil descargado                         | `denybarbie`                |
| **`mediaId`** | ID único del medio en Privacy                        | `abc123def-4567-...`        |
| **`originalIndex`** | Posición original en la lista de medios              | `15`                        |
| **`fileSizeKB`** / **`fileSizeMB`** | Tamaño en KB o MB                   | `154.2` / `25.5`            |
| **`kvStoreKey`** | Clave para encontrar el archivo en Key-Value Store   | `IMAGES_denybarbie_abc123`   |
| **`timestamp`** | Momento de la descarga (Unix timestamp)              | `1761xxxxxx.xxx`            |

***

### 💡 Consejos y Mejores Prácticas

#### 🚀 Para Mejor Rendimiento

- **Deja el campo de paralelismo vacío** para que el sistema se adapte automáticamente - es la opción más confiable.
- Si tienes **32 GB de RAM**, el scraper tardará ~15-16 minutos para un perfil de 15 GB.
- Si tienes **8 GB de RAM**, el scraper tardará ~23-25 minutos pero será 100% estable.
- **Para perfiles grandes (>200 archivos)**, considera usar **16 GB o más** para evitar reducciones de velocidad.
- **Actualiza tu `storage_state` regularmente** (cada pocos días o si empieza a fallar) si usas el método avanzado.
- Usa el archivo **`DOWNLOAD_LINKS.html`** para acceder fácilmente a todos tus ZIPs.

#### 🔒 Seguridad

- **NUNCA compartas tu `storage_state`**. Contiene tu sesión.
- Introduce tu `email` y `password` directamente en los campos de Apify (marcados como secretos). No los pongas en texto plano en otros lugares.

***

### ❌ Solución de Problemas Comunes

#### Error: `MEMORIA INSUFICIENTE` (Trilingüe ES/PT/EN)

- **Causa:** Intentaste ejecutar el actor con menos de 8 GB de RAM.
- **Solución:** Ve a la configuración del Actor y aumenta la memoria a **al menos 8 GB (8192 MB)**.
- **Nota:** Verás un mensaje detallado en 3 idiomas explicando por qué necesitas 8 GB mínimo.

#### Error: `Login directo falló...`

- **Causa:** Tus credenciales de `email` o `password` son incorrectas.
- **Solución:** Verifica tu email y contraseña. Si estás 100% seguro de que son correctos, tu cuenta podría tener 2FA (Autenticación de Dos Factores) o estar bloqueada por un CAPTCHA.
- **Solución Avanzada:** Usa el **Método Avanzado (Plan B)** de arriba para generar un `storageState` manualmente.

#### Error: `ERROR CRÍTICO: ACCESO DENEGADO` (Trilingüe ES/PT/EN)

- **Causa:** No estás **suscrito** al perfil que intentas descargar, o el perfil es privado/no existe.
- **Solución:**
  1. Verifica que estás suscrito al perfil en Privacy.com.br
  2. Verifica que el perfil existe y tiene contenido
  3. Usa las credenciales correctas
- **Nota:** Este error NO se solucionará reintentando. El actor usa **exit code 2** para evitar reintentos automáticos innecesarios.

#### Error: `La URL del perfil proporcionada (...) no es válida...`

- **Causa:** La URL no tiene el formato correcto (`https://privacy.com.br/profile/nombredeusuario`). Probablemente pegaste una URL de `checkout`.
- **Solución:** Copia la URL directamente desde la barra de direcciones del navegador cuando estés viendo el perfil deseado.

#### Advertencia: `Paralelismo reducido por perfil grande + RAM limitada`

- **Causa:** Tienes un perfil con >200 o >400 archivos y RAM limitada (<16 GB o <32 GB).
- **Efecto:** El actor redujo automáticamente el paralelismo a 2 o 1 para **prevenir OOM**.
- **Solución para más velocidad:**
  1. Aumenta la RAM a 16 GB o 32 GB, o
  2. Divide la descarga en múltiples ejecuciones más pequeñas
- **Nota:** Esto es **normal y esperado** - el sistema te está protegiendo de errores.

#### Error: El Actor falla con OOM (Out of Memory) incluso con 8 GB

- **Causa:** Perfil extremadamente grande (>400 archivos) con videos muy pesados.
- **Solución:**
  1. Aumenta a **16 GB o 32 GB** de RAM
  2. Divide la descarga en múltiples ejecuciones
  3. Contacta soporte si persiste con 32 GB

#### Error: `storageState JSON inválido...` o `El Storage State... no contiene cookies...`

- **Causa:** Estás usando el **Método Avanzado** y pegaste un JSON vacío, incompleto o generado antes de iniciar sesión.
- **Solución:** Repite los pasos del **Método Avanzado** con mucho cuidado. Asegúrate de iniciar sesión en el navegador *antes* de presionar Enter en la terminal. Asegúrate de copiar **TODO** el contenido del archivo.

#### El scraper está usando menos memoria de la esperada

- **Esto es normal y bueno.** El sistema adaptativo es conservador para evitar errores de OOM.
- Con 32 GB disponibles, el scraper usará ~5-7 GB en promedio, dejando mucho margen de seguridad.
- El rendimiento sigue siendo óptimo incluso sin usar el 100% de la RAM.

***

### 📞 Soporte y Contacto

- **Email:** `Axel845890@proton.me`
- **Problemas Técnicos:** Usa la pestaña **Issues** en la página del Actor en Apify para reportar bugs o hacer preguntas técnicas.

***

### 💰 Precios y Planes

#### 🎯 Plan Único

- **Precio:** $25/mes (Suscripción recurrente)
- **Incluye:**
  - Descargas ilimitadas durante el mes.
  - Soporte prioritario via email/Issues.
  - Acceso a todas las features (ZIPs, Dataset, Optimización Adaptativa, Protección anti-OOM).
  - *(Nota: El costo de uso de la plataforma Apify se cobra aparte según tu plan de Apify)*

#### 🆓 Prueba Gratuita

- La prueba gratuita ya no está disponible debido a uso indebido.
- Si necesitas evaluar el actor antes de suscribirte, puedes contactarme para una demo limitada.

***

### 🔄 Changelog

#### (Noviembre 2025) - Protección Anti-OOM & Enlaces de Descarga Directos

- 🛡️ **Nuevo:** Validación de 8 GB mínimo con mensajes trilingües (ES/PT/EN)
- 🧠 **Nuevo:** Sistema de protección anti-OOM con ajuste dinámico de paralelismo
- 📊 **Nuevo:** Detección automática de perfiles grandes (>200, >400 archivos)
- 🔴 **Nuevo:** Exit code 2 para errores críticos (evita auto-restarts innecesarios)
- 🌐 **Mejora:** Página HTML con botones de descarga directa funcionales
- ⏱️ **Mejora:** Timeout reducido de 20s a 10s para detección más rápida de errores
- 💬 **Mejora:** Advertencias claras cuando se reduce paralelismo por memoria limitada
- 📋 **Mejora:** Mensajes trilingües para error "no suscrito al perfil"

#### (Noviembre 2025) - Optimización Adaptativa

- ✨ **Nuevo:** Sistema de detección automática de memoria con 3 tiers (LOW/MEDIUM/HIGH)
- ⚡ **Mejora:** Configuración de paralelismo automática según recursos disponibles
- 📦 **Mejora:** Tamaños de ZIP optimizados por tier (400MB/550MB/700MB)
- 🎯 **Mejora:** Reducción de tiempo de 28 min a 15-16 min en configuración HIGH (32 GB)
- 🛡️ **Mejora:** Mejor protección contra errores OOM en configuraciones LOW (8 GB)
- 🌐 **Mejora:** Página HTML de descargas más informativa con tier de memoria detectado

***

### ⚖️ Términos de Uso

#### ✅ Permitido

- Descargar contenido al que tengas **acceso legítimo** a través de tu propia cuenta y suscripciones activas en Privacy.com.br.
- Uso **personal** para archivo o backup.
- Cumplir con los Términos de Servicio de Privacy.com.br.

#### ❌ No Permitido

- Redistribuir comercialmente el contenido descargado.
- Compartir el contenido descargado públicamente.
- Descargar contenido al que no tengas derecho de acceso.
- Usar el scraper para cualquier actividad ilegal o que viole los términos de Privacy.
- Realizar descargas masivas excesivas que puedan sobrecargar los servidores de Privacy.

### 🔒 Privacidad

- Tu `storageState`, `email` y `password` se tratan como secretos en Apify y se encriptan.
- El scraper no almacena tus credenciales después de la ejecución.
- Los datos descargados (imágenes/videos) se almacenan temporalmente en tu cuenta de Apify hasta que los elimines.

### 🔞 Advertencia de Contenido

Este scraper está diseñado para interactuar con Privacy.com.br, una plataforma que puede alojar contenido para adultos. Al utilizar esta herramienta, confirmas que:

- Tienes la edad legal requerida (18+ o la mayoría de edad en tu jurisdicción) para ver dicho contenido.
- Comprendes la naturaleza del contenido al que podrías acceder.
- Utilizarás esta herramienta de forma responsable, ética y legal.
- Solo descargarás contenido al que tengas **acceso legítimo** mediante tu cuenta y suscripciones.

***

**Descargo de responsabilidad:** Este scraper se proporciona "tal cual", sin garantías. El usuario es el único responsable de asegurar que su uso cumpla con todas las leyes aplicables y los términos de servicio de Privacy.com.br. El desarrollador no se hace responsable del mal uso de esta herramienta ni del contenido descargado. Úsalo bajo tu propio riesgo y responsabilidad.

# Actor input Schema

## `profile_url` (type: `string`):

La URL completa del perfil que quieres descargar. Ejemplo: https://privacy.com.br/profile/nombredeusuario

## `email` (type: `string`):

Tu email de inicio de sesión en Privacy.com.br.

## `password` (type: `string`):

Tu contraseña de Privacy.com.br. Se guarda de forma segura.

## `proxy_config` (type: `string`):

Tipo de proxy a usar para evitar bloqueos de Privacy. Recomendado: 'auto' o 'residential'. Opciones: 'auto' (autoselección), 'residential' (residencial), 'datacenter' (datacenter), 'none' (sin proxy).

## `download_images` (type: `boolean`):

Descargar todas las imágenes accesibles del perfil.

## `download_videos` (type: `boolean`):

Descargar todos los videos accesibles del perfil.

## `lote_descarga_videos` (type: `integer`):

AUTOMÁTICO: Deja vacío para que se adapte según tu memoria (8GB=4, 16GB=6, 32GB=7). MANUAL: Ingresa un número (1-10) para forzar ese valor. Valores altos pueden causar errores en perfiles grandes.

## `create_zip_files` (type: `boolean`):

¿Crear archivos ZIP con el contenido descargado? Si desactivas esto, solo recibirás enlaces directos a cada archivo. Desactivar ZIPs es MUCHO más rápido (3-5x) y usa menos RAM (~70% menos), ideal para perfiles grandes (>500 archivos) o RAM limitada (8GB).

## `storage_state` (type: `string`):

OPCIONAL: Pega tu storageState.json personalizado. Si se proporciona, se usará en lugar del login con email/contraseña.

## Actor input object example

```json
{
  "profile_url": "https://privacy.com.br/profile/",
  "proxy_config": "auto",
  "download_images": true,
  "download_videos": true,
  "create_zip_files": true
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "profile_url": "https://privacy.com.br/profile/"
};

// Run the Actor and wait for it to finish
const run = await client.actor("ultramarine_freezer/tele123").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "profile_url": "https://privacy.com.br/profile/" }

# Run the Actor and wait for it to finish
run = client.actor("ultramarine_freezer/tele123").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "profile_url": "https://privacy.com.br/profile/"
}' |
apify call ultramarine_freezer/tele123 --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ultramarine_freezer/tele123"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/gFNnmy3rI61IiawQQ/builds/5HMyeOPDqmhyzEtj1/openapi.json
