> For the complete documentation index, see [llms.txt](https://developers.oxylabs.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://developers.oxylabs.io/api-targets/es/video-and-social-media/youtube/youtube-scraping-guide-for-ai.md).

# Guía de scraping para IA

Aprende a obtener datos de YouTube para entrenamiento de IA usando Web Scraper API. Descubre más sobre el flujo de trabajo completo, desde buscar videos hasta crear una base de datos.

Esta guía le mostrará 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_subtitles`.

## Paso 1: Buscar videos

Empiece buscando videos relacionados con su tema de interés.

### Búsqueda básica

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

```json
{
  "source": "youtube_search",
  "query": "your search term"
}
```

### Búsqueda ampliada

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

```json
{
  "source": "youtube_search_max",
  "query": "your search term"
}
```

### Buscar con filtros

Refine su búsqueda con filtros:

```json
{
  "source": "youtube_search",
  "query": "your search term",
  "type": "video",
  "duration": "4-20",
  "upload_date": "this_month",
  "sort_by": "view_count",
  "hd": true
}
```

{% hint style="info" %}
Use los filtros adecuados para reducir los resultados según sus 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 los IDs de video de los resultados de búsqueda

Después de recibir los resultados de búsqueda, extraiga los **IDs de video** para su procesamiento posterior. 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 necesita
                    "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
                    }
                }
            ]
        }
    ]
}
```

Extraiga 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, compruebe 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

Recopile 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 número de visualizaciones, comentarios, calificaciones y otras métricas que pueden ayudarle a evaluar la calidad del contenido.

{% hint style="success" %}
La `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, puede proceder con la recuperación de contenido. Esto puede hacerse en dos pasos en paralelo:

### 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 Push-Pull**](/products/es/web-scraper-api/integration-methods/push-pull.md) y [**Almacenamiento en la nube**](/products/es/web-scraper-api/features/result-processing-and-storage/cloud-storage.md) función.
{% endhint %}

**Nota:**

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

### 5.2 Recuperar subtítulos de video

#### **Comprobación manual de si un video tiene subtítulos:**

En YouTube, haga clic en el **CC** icono debajo del video para activar los subtítulos.

Si desea seleccionar subtítulos en un idioma específico, busque el **Configuración** icono junto al **CC** icono, haga clic en él y vaya a **"Subtítulos/CC"** en las opciones. Allí encontrará **Traducción automática**, haga clic en esa opción y le llevará a la lista de idiomas.

Si los subtítulos están disponibles, puede recuperarlos con:

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

Para videos con subtítulos creados manualmente, especifique:

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

## Procesamiento por lotes

Para un procesamiento eficiente de múltiples videos, use endpoints por lotes:

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

## Buenas prácticas

1. Siga el flujo de descubrimiento desde **búsqueda → entrenabilidad → metadatos → contenido** para maximizar la eficiencia
2. Reduzca los resultados de búsqueda antes de procesar videos individuales
3. Verifique siempre la entrenabilidad antes de usar contenido para IA
4. Compruebe [**códigos de respuesta**](/products/es/web-scraper-api/response-codes.md) e implemente reintentos para las solicitudes fallidas


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://developers.oxylabs.io/api-targets/es/video-and-social-media/youtube/youtube-scraping-guide-for-ai.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
