PHPackages                             ytb-dw/php-sdk - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [API Development](/categories/api)
4. /
5. ytb-dw/php-sdk

ActiveLibrary[API Development](/categories/api)

ytb-dw/php-sdk
==============

SDK PHP officiel pour l'API YouTube Downloader

01PHP

Since Sep 16Pushed 8mo agoCompare

[ Source](https://github.com/ytb-dw/php-sdk)[ Packagist](https://packagist.org/packages/ytb-dw/php-sdk)[ RSS](/packages/ytb-dw-php-sdk/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

YtbDw PHP SDK
=============

[](#ytbdw-php-sdk)

[![Version](https://camo.githubusercontent.com/34e695c6016bc2a934a96bed696e29b2f2ab562a7134d65a55d00653cd506bea/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f76657273696f6e2d312e302e302d626c75652e737667)](https://github.com/ytb-dw/ytbdw-php-sdk)[![PHP](https://camo.githubusercontent.com/7f616a026330c1f52a316b141277f7dd009eec7737dd0ae0b00a1d1f7d0d28e8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7068702d253545372e342d626c75652e737667)](https://php.net/)[![License](https://camo.githubusercontent.com/8bb50fd2278f18fc326bf71f6e88ca8f884f72f179d3e555e20ed30157190d0d/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e2e737667)](LICENSE)

SDK PHP officiel pour l'API YouTube Downloader. Téléchargez facilement des vidéos et audios YouTube dans vos applications PHP.

🚀 Fonctionnalités
-----------------

[](#-fonctionnalités)

- ✅ Téléchargement de vidéos YouTube en MP4
- ✅ Téléchargement audio en MP3
- ✅ Récupération des métadonnées des vidéos
- ✅ Gestion avancée des erreurs avec messages conviviaux
- ✅ Support de différentes qualités (audio et vidéo)
- ✅ Interface simple et intuitive
- ✅ Timeout configurables
- ✅ Headers HTTP personnalisables

📋 Prérequis
-----------

[](#-prérequis)

- PHP 7.4 ou supérieur
- Extension `json` activée
- Extension `openssl` pour les requêtes HTTPS
- Une clé API valide de YtbDw

📦 Installation
--------------

[](#-installation)

### Via Composer (recommandé)

[](#via-composer-recommandé)

```
composer require ytbdw/php-sdk
```

### Installation manuelle

[](#installation-manuelle)

1. Téléchargez le fichier `YtbDwClient.php`
2. Incluez-le dans votre projet :

```
require_once 'path/to/YtbDwClient.php';
```

🔧 Configuration
---------------

[](#-configuration)

### Obtenir une clé API

[](#obtenir-une-clé-api)

1. Rendez-vous sur
2. Créez un compte ou connectez-vous
3. Générez votre clé API dans votre tableau de bord
4. Copiez votre clé API (format : `ytb-dw-votre-cle-api`)

### Initialisation du client

[](#initialisation-du-client)

```
use YtbDw\YtbDwClient;
use YtbDw\YtbDwException;

// Configuration de base
$client = new YtbDwClient('ytb-dw-votre-cle-api');

// Configuration avancée
$client = new YtbDwClient(
    'ytb-dw-votre-cle-api',        // Clé API
    'https://ytb-dw-api.onrender.com', // URL de base (optionnel)
    60                              // Timeout en secondes (optionnel)
);
```

🎯 Utilisation
-------------

[](#-utilisation)

### Récupération des informations d'une vidéo

[](#récupération-des-informations-dune-vidéo)

```
try {
    $videoInfo = $client->getVideoInfo('https://youtube.com/watch?v=dQw4w9WgXcQ');

    echo "Titre: " . $videoInfo->getTitle() . "\n";
    echo "Durée: " . $videoInfo->getDuration() . "\n";
    echo "Auteur: " . $videoInfo->getUploader() . "\n";

    // Vérifier les formats disponibles
    if ($videoInfo->hasAudioFormats()) {
        echo "Formats audio disponibles\n";
    }

    if ($videoInfo->hasVideoFormats()) {
        echo "Formats vidéo disponibles\n";
    }

} catch (YtbDwException $e) {
    echo "Erreur: " . $e->getFriendlyMessage() . "\n";
}
```

### Téléchargement audio (MP3)

[](#téléchargement-audio-mp3)

```
try {
    // Téléchargement audio simple
    $result = $client->downloadAudio('https://youtube.com/watch?v=dQw4w9WgXcQ');

    echo "Fichier téléchargé: " . $result->getFilePath() . "\n";
    echo "Taille: " . $result->getFileSizeFormatted() . "\n";

    // Avec qualité et nom de fichier personnalisés
    $result = $client->downloadAudio(
        'https://youtube.com/watch?v=dQw4w9WgXcQ',
        '192kbps',           // Qualité audio
        'ma_musique.mp3'     // Nom du fichier
    );

} catch (YtbDwException $e) {
    echo "Erreur: " . $e->getFriendlyMessage() . "\n";
}
```

### Téléchargement vidéo (MP4)

[](#téléchargement-vidéo-mp4)

```
try {
    // Téléchargement vidéo simple (720p par défaut)
    $result = $client->downloadVideo('https://youtube.com/watch?v=dQw4w9WgXcQ');

    echo "Fichier téléchargé: " . $result->getFilePath() . "\n";
    echo "Taille: " . $result->getFileSizeFormatted() . "\n";

    // Avec qualité et nom personnalisés
    $result = $client->downloadVideo(
        'https://youtube.com/watch?v=dQw4w9WgXcQ',
        '1080',              // Qualité vidéo
        'ma_video.mp4'       // Nom du fichier
    );

} catch (YtbDwException $e) {
    echo "Erreur: " . $e->getFriendlyMessage() . "\n";
}
```

### Téléchargement générique

[](#téléchargement-générique)

```
try {
    // Méthode générique pour plus de contrôle
    $result = $client->download(
        'https://youtube.com/watch?v=dQw4w9WgXcQ',
        'video',             // Format: 'video' ou 'audio'
        '720',               // Qualité
        'mon_fichier.mp4'    // Chemin de sortie
    );

    // Vérification du type de fichier
    if ($result->isVideo()) {
        echo "Vidéo téléchargée avec succès\n";
    } elseif ($result->isAudio()) {
        echo "Audio téléchargé avec succès\n";
    }

} catch (YtbDwException $e) {
    echo "Erreur: " . $e->getFriendlyMessage() . "\n";
}
```

📊 Classes et méthodes
---------------------

[](#-classes-et-méthodes)

### YtbDwClient

[](#ytbdwclient)

#### Méthodes principales

[](#méthodes-principales)

MéthodeDescriptionParamètres`getVideoInfo($url)`Récupère les métadonnéesURL YouTube`downloadAudio($url, $quality, $output)`Télécharge l'audioURL, qualité (opt.), fichier (opt.)`downloadVideo($url, $quality, $output)`Télécharge la vidéoURL, qualité (opt.), fichier (opt.)`download($url, $format, $quality, $output)`Téléchargement génériqueURL, format, qualité (opt.), fichier (opt.)### YtbDwVideoInfo

[](#ytbdwvideoinfo)

#### Propriétés accessibles

[](#propriétés-accessibles)

```
$videoInfo->getTitle();        // Titre de la vidéo
$videoInfo->getDuration();     // Durée
$videoInfo->getUploader();     // Nom de l'auteur
$videoInfo->getFormats();      // Formats disponibles
$videoInfo->hasAudioFormats(); // Formats audio disponibles?
$videoInfo->hasVideoFormats(); // Formats vidéo disponibles?
$videoInfo->getRawData();      // Données brutes
```

### YtbDwDownloadResult

[](#ytbdwdownloadresult)

#### Informations sur le téléchargement

[](#informations-sur-le-téléchargement)

```
$result->getFilePath();           // Chemin du fichier
$result->getFileSize();           // Taille en bytes
$result->getFileSizeFormatted();  // Taille formatée (ex: "15.2 MB")
$result->getFormat();             // Format ('audio' ou 'video')
$result->isAudio();               // Est un fichier audio?
$result->isVideo();               // Est un fichier vidéo?

```

⚠️ Gestion d'erreurs
--------------------

[](#️-gestion-derreurs)

Le SDK utilise des exceptions personnalisées avec des messages conviviaux :

```
try {
    $result = $client->downloadVideo($url);
} catch (YtbDwException $e) {
    $errorCode = $e->getCode();

    switch ($errorCode) {
        case 400:
            echo "Paramètres invalides";
            break;
        case 401:
            echo "Clé API invalide";
            break;
        case 403:
            echo "Quota dépassé";
            break;
        case 404:
            echo "Vidéo non trouvée";
            break;
        case 429:
            echo "Trop de requêtes";
            break;
        default:
            echo "Erreur: " . $e->getFriendlyMessage();
    }
}
```

🔧 Qualités supportées
---------------------

[](#-qualités-supportées)

### Audio

[](#audio)

- `128kbps` - Qualité standard
- `192kbps` - Bonne qualité
- `320kbps` - Haute qualité

### Vidéo

[](#vidéo)

- `360` - Résolution 360p
- `480` - Résolution 480p
- `720` - Résolution 720p HD
- `1080` - Résolution 1080p Full HD

📝 Exemple complet
-----------------

[](#-exemple-complet)

```
