# Integração com o YouTube Downloader (yt\_dlp)

## Integração de Exemplo: Downloader do YouTube

Aqui está um exemplo usando `yt-dlp` com nossos High Bandwidth Proxies para raspagem de dados de vídeo ou áudio:

### Uso Básico

Adicionando um `-test` parâmetro ao nome de usuário permite que os usuários testem a configuração de conexão.

{% tabs %}
{% tab title="Linha de Comando" %}

```bash
yt-dlp --proxy username-test:password@endpoint:60000 \
"https://www.youtube.com/watch?v=WNCl-69POro"
```

{% endtab %}

{% tab title="Python" %}

```python
import yt_dlp

username = 'YOUR_USERNAME'
password = 'YOUR_PASSWORD'

if not username.endswith("-test"):
    username += "-test"
    
proxy = f'http://{username}:{password}@your-endpoint:60000'

ydl_opts = {
    'proxy': proxy,
}

with yt_dlp.YoutubeDL(ydl_opts) as ydl:
    ydl.download(['https://www.youtube.com/watch?v=WNCl-69POro'])
```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
Para desempenho ideal, certifique-se de que cada vídeo seja baixado usando um endereço IP separado. Consulte a seção abaixo para orientação.
{% endhint %}

### URLs Múltiplas com IPs Diferentes

Ao usar High Bandwidth Proxies, cada vídeo é baixado com um endereço IP separado para garantir o desempenho ideal. Isso é obtido gerando um ID de sessão único para cada solicitação, o que efetivamente atribui um novo endereço IP para cada download.

{% tabs %}
{% tab title="Linha de comando" %}

```bash
# Primeiro vídeo com um IP
yt-dlp --proxy username-$((1 + RANDOM % 100000)):password@endpoint:60000 \
"https://www.youtube.com/watch?v=6stlCkUDG_s"

# Segundo vídeo com IP diferente
yt-dlp --proxy username-$((1 + RANDOM % 100000)):password@endpoint:60000 \
"https://www.youtube.com/watch?v=gsnqXt7d1mU"
```

{% endtab %}

{% tab title="Python" %}

```python
import random
import yt_dlp

def download_with_new_ip(url, username, password):
    session_id = random.randint(1, 100000)
    proxy = f'http://{username}-{session_id}:{password}@your-endpoint:60000'

    ydl_opts = {
        'proxy': proxy
    }
    
    with yt_dlp.YoutubeDL(ydl_opts) as ydl:
        try:
            print(f"Downloading {url} with new IP ({username}-{session_id})...")
            ydl.download([url])
            print(f"Successfully downloaded {url}")
        except Exception as e:
            print(f"Error downloading {url}: {str(e)}")

def main():
    username = 'YOUR_USERNAME'
    password = 'YOUR_PASSWORD'
    
    videos = [
        'https://www.youtube.com/watch?v=6stlCkUDG_s',
        'https://www.youtube.com/watch?v=gsnqXt7d1mU'
    ]
    
    for video in videos:
        download_with_new_ip(video, username, password)

if __name__ == "__main__":
    main()

```

{% endtab %}
{% endtabs %}

{% hint style="info" %}
A função inclui tratamento básico de erros para garantir que o processo continue mesmo se um download falhar.
{% endhint %}
