# Guía de scraping para IA

Esta guía te llevará paso a paso por el flujo de trabajo para recopilar y filtrar datos de YouTube con fines de entrenamiento de IA usando [**las fuentes especializadas de Web Scraper API**](https://oxylabs.io/products/scraper-api/web/youtube): `youtube_search`, `youtube_video_trainability`, `youtube_metadata`, `youtube_download`, `youtube_transcript`.

## Paso 1: Buscar videos

Comienza buscando videos relacionados con tu tema de interés.

### Búsqueda básica

Para una búsqueda rápida que devuelve hasta 20 resultados:

```json
{
  "source": "youtube_search",
  "query": "término de búsqueda"
}
```

### Búsqueda ampliada

Para resultados más completos (hasta 700 resultados):

```json
{
  "source": "youtube_search_max",
  "query": "término de búsqueda"
}
```

### Búsqueda con filtros

Refina tu búsqueda con filtros:

```json
{
  "source": "youtube_search",
  "query": "término de búsqueda",
  "type": "video",
  "duration": "4-20",
  "upload_date": "this_month",
  "sort_by": "view_count",
  "hd": true
}
```

{% hint style="info" %}
Usa los filtros adecuados para acotar los resultados según tus necesidades específicas. Las opciones incluyen tipo de contenido (video, canal, lista de reproducción), duración, fecha de subida y ajustes de calidad.
{% endhint %}

## Paso 2: Extraer IDs de video de los resultados de búsqueda

Después de recibir los resultados de búsqueda, extrae los **IDs de video** para procesarlos más adelante. En la respuesta de `youtube_search` o `youtube_search_max`, los IDs de video están disponibles directamente en el `videoId` campo de cada elemento de resultado, como se muestra en este fragmento de respuesta de ejemplo:

```json
{
    "results": [
        {
            "content": [
                {
                    "videoId": "LK9XuImr8Xg",  // Este es el ID de video que necesitas
                    "thumbnail": {
                        "thumbnails": [
                            {
                                "url": "https://i.ytimg.com/vi/LK9XuImr8Xg/hq720_2.jpg?sqp=-oaymwE2COgCEMoBSFXyq4qpAygIARUAAIhCGABwAcABBvABAfgBtgiAAoAPigIMCAAQARhaIGUoLTAP&rs=AOn4CLDTvqEgoE2ZNfnn3EalF2ujcthVNw",
                                "width": 360,
                                "height": 202
                            }
                        ]
                    },
                    "title": {
                        // detalles del título
                    }
                }
            ]
        }
    ]
}
```

Extrae estos IDs de video en una lista para usarlos en llamadas posteriores a la API.

## Paso 3: Comprobar la elegibilidad para entrenamiento de IA

Antes de descargar o usar videos para entrenamiento de IA, verifica su elegibilidad:

```json
{
  "source": "youtube_video_trainability",
  "video_id": "rFNDylrjn_w"
}
```

La respuesta indicará si el video puede usarse con fines de entrenamiento de IA:

* `["all"]` - Entrenamiento permitido para todas las partes
* `["none"]` - No se permite entrenamiento para ninguna parte
* `["party1", "party2", ...]` - Entrenamiento permitido solo para partes específicas

## Paso 4: Obtener metadatos del video&#x20;

Recopila información adicional sobre los videos para evaluar mejor su calidad y relevancia:

```json
{
  "source": "youtube_metadata",
  "query": "VIDEO_ID",
  "parse": true
}
```

La respuesta contendrá metadatos como recuentos de vistas, comentarios, valoraciones y otras métricas que pueden ayudarte a evaluar la calidad del contenido.

{% hint style="success" %}
El `parse` el parámetro debe establecerse en `true` para la fuente de metadatos.
{% endhint %}

## Paso 5: Recuperar contenido de los videos seleccionados

Después de identificar videos de alta calidad y aptos para entrenamiento según su elegibilidad y metadatos, puedes proceder con la recuperación del contenido. Esto se puede hacer en dos pasos paralelos:

### 5.1 Descargar contenido de video/audio

```json
{
  "source": "youtube_download",
  "query": "VIDEO_ID",
  "storage_type": "s3",
  "storage_url": "s3://your-bucket/your-folder/"
}
```

Opciones adicionales para la descarga:

```json
{
  "source": "youtube_download",
  "query": "VIDEO_ID",
  "storage_type": "s3",
  "storage_url": "s3://your-bucket/your-folder/",
  "context": [
    {
      "key": "download_type",
      "value": "video"
    },
    {
      "key": "video_quality",
      "value": "1080"
    }
  ]
}
```

{% hint style="info" %}
Esta fuente solo está disponible a través de la integración asíncrona [**Push-Pull**](broken://pages/3ab89b0a5ace372c6fac78adb83f33dd42e26fd4) y [**de**](broken://pages/23c2f283c6dd1e2ed9e74a34f428d5ce210cad3b) Almacenamiento en la nube
{% endhint %}

**Nota:**

* Los videos pueden tener hasta 3 horas de duración
* La resolución predeterminada es 720p (se puede personalizar)
* Puedes especificar solo audio, solo video o ambos

### 5.2 Recuperar transcripciones de video

{% hint style="danger" %}
Las transcripciones no son lo mismo que los subtítulos ocultos (CC). No todos los videos tienen transcripciones disponibles en todos los idiomas. Si no existe una transcripción en el idioma que especificaste, la API devolverá un `404` código de estado.
{% endhint %}

#### **Comprobar si un video tiene transcripciones:**

La forma más eficiente de comprobar la disponibilidad de transcripciones es examinando los metadatos del video [**(Paso 4)**](#step-4-get-video-metadata), que incluyen estos campos:

```json
{
    "is_transcript_available": true,
    "generated_subtitle_languages": [
        "en"
    ],
    "generated_transcript_languages": [
        "en"
    ]
}
```

{% hint style="info" %}
Este enfoque es más rentable que hacer solicitudes que resulten en `404` errores, que son facturables.
{% endhint %}

Si los metadatos muestran que hay transcripciones disponibles, puedes recuperarlas con:

```json
{
  "source": "youtube_transcript",
  "query": "VIDEO_ID",
  "context": [
    {
      "key": "language_code",
      "value": "en"
    }
  ]
}
```

Para videos con transcripciones creadas manualmente, especifica:

```json
{
  "source": "youtube_transcript",
  "query": "VIDEO_ID",
  "context": [
    {
      "key": "language_code",
      "value": "en"
    },
    {
      "key": "transcript_origin",
      "value": "uploader_provided"
    }
  ]
}
```

#### **Comprobar si un video tiene transcripciones (manualmente):**

En YouTube, haz clic en el menú "..." debajo del video y luego busca **"Show transcript"** en las opciones del menú. Si esta opción no aparece, el video no tiene transcripciones disponibles. Cuando está presente, puedes hacer clic para ver los idiomas de transcripción disponibles.

## Procesamiento por lotes

Para procesar eficientemente varios videos, usa endpoints por lotes:

```json
{
  "source": "youtube_video_trainability",
  "query": ["VIDEO_ID_1", "VIDEO_ID_2", "VIDEO_ID_3"]
}
```

## Buenas prácticas

1. Sigue el flujo de descubrimiento de **búsqueda → elegibilidad para entrenamiento → metadatos → contenido** para maximizar la eficiencia
2. Reduce los resultados de búsqueda antes de procesar videos individuales
3. Verifica siempre la elegibilidad para entrenamiento antes de usar contenido para IA
4. Comprueba [**los códigos de respuesta**](/products/es/web-scraper-api/response-codes.md) e implementa reintentos para solicitudes fallidas


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://developers.oxylabs.io/api-targets/es/video-y-redes-sociales/youtube/youtube-scraping-guide-for-ai.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
