Document Audio Normalization (EBU R128) in README and translated READMEs, and add corresponding localization keys and help text in ytsage language files. Updates include README.md, readme-translations (ar,de,es,fr,hi,id,it,ja,pl,pt,ru,tr,zh) and ytsage/languages JSON files to explain the feature and note that normalization requires re-encoding and forcing a specific audio format (e.g. MP3 or M4A).
27 KiB
Un téléchargeur YouTube moderne avec une interface PySide6 épurée.
Téléchargez des vidéos dans n'importe quelle qualité, extrayez l'audio, récupérez des sous-titres, et bien plus encore.
🌍 Langues README
Anglais : EN | Titre : AR | Allemand : DE | Espagnol : ES | Anglais: FR | Nom : HI | Bahasa Indonésie : ID | Italien : IT | Nom : JA | Polski : PL | Portugais : PT | Russe : RU | Turc : TR | Nom : ZH
Installation • Caractéristiques • Utilisation • Captures d'écran • Dépannage • Commanditaire • Contribuer
❓Pourquoi YTSage ?
YTSage est conçu pour les utilisateurs qui souhaitent un téléchargeur YouTube simple mais puissant. Contrairement à d’autres outils, il propose :
- Une interface PySide6 propre et moderne
- Téléchargements en un clic pour la vidéo, l'audio et les sous-titres
- Fonctionnalités avancées telles que SponsorBlock, la fusion de sous-titres et la sélection de listes de lecture
- Mode générique en option pour les sites pris en charge par yt-dlp au-delà de YouTube
- Prise en charge multiplateforme et installation facile
✨ Caractéristiques
| Fonctionnalités principales | Fonctionnalités avancées | Fonctionnalités supplémentaires |
|---|---|---|
| 🎥 Formater le tableau | 🚫 Intégration SponsorBlock | 🎞️ Affichage FPS/HDR |
| 🎵 Extraction audio | 📝 Sélection et fusion de sous-titres multiples | 🔄 Mise à jour automatique yt-dlp |
| ✨ Interface utilisateur simple | 💾 Enregistrer la description et la vignette | 🛠️ Détection FFmpeg/yt-dlp/Deno |
| 📋 Prise en charge et sélecteur de playlist | 🚀 Limiteur de vitesse | ⚙️ Commandes personnalisées |
| 📑 Intégrer les chapitres | ✂️ Couper les sections vidéo | 🍪 Connectez-vous avec les cookies |
| 📜 Historique des téléchargements | 🔄 Sélection des chaînes de sortie | 🌐 Assistance proxy |
| 🎚️ Conversion de formats audio | 🎬 Paramètres de format vidéo | 🆙 Onglet de mise à jour intégré |
| 🌍 Mode générique | ||
| 🌍 Localisation en 14 langues |
🚀Installation
⚡ Installation rapide (recommandé)
Installez YTSage depuis PyPI :
pip install ytsage
🔄 Mettre à jour une installation existante
pip install --upgrade ytsage
Lancez ensuite l'application :
ytsage
📦 Exécutables prédéfinis
🪟Fenêtres
| Formater | Descriptif |
|---|---|
| Installateur standard | |
| Avec FFmpeg fourni | |
| Version portable, aucune installation requise | |
| Portable avec FFmpeg, zippé |
🛠️ Étapes d'installation
- EXE Installer (
.exe) : Double-cliquez sur le fichier et suivez l'assistant d'installation. - Version portable (
.zip) : Extrayez l'archive à l'emplacement souhaité et exécutezytsage.exe. - FFmpeg Bundled : Choisissez les versions groupées de FFmpeg si FFmpeg n'est pas installé sur votre système.
🐧Linux
| Formater | Descriptif |
|---|---|
| Paquet Debian | |
| AppImage, portable | |
| Paquet RPM | |
| Paquet Flatpak |
🛠️ Étapes d'installation
- DEB (
.deb) :sudo dpkg -i ytsage_*.deb sudo apt-get install -f # Fix missing dependencies if any - RPM (
.rpm) :sudo rpm -i ytsage-*.rpm - AppImage (
.AppImage) :chmod +x YTSage-*.AppImage ./YTSage-*.AppImage - Flatpak : suivez les instructions sur Flathub ou exécutez :
flatpak install flathub io.github.oop7.ytsage
🍎macOS
| Formater | Descriptif |
|---|---|
| Application zippée pour Apple Silicon | |
| Programme d’installation d’image disque pour Apple Silicon |
🛠️ Étapes d'installation
- DMG Installer (
.dmg) : Double-cliquez pour monter, puis faites glisserYTSage.appdans votre dossier Applications. - App Archive (
.zip) : Extrayez le zip et déplacezYTSage.appvers votre dossier Applications.
Remarque : si vous rencontrez une erreur « L'application est endommagée », consultez le macOS troubleshooting section ci-dessous.
💻 Installation manuelle à partir de la source
1. Cloner le référentiel
git clone https://github.com/oop7/YTSage.git
cd YTSage
2. Installer les dépendances
⚡Avec uv
uv pip install .
📦 Ou avec pip standard
pip install .
3. Exécutez l'application
python -m ytsage.main
📸 Captures d'écran
![]() |
![]() |
| Paramètres de téléchargement | Téléchargement de la liste de lecture |
![]() |
![]() |
| Format audio | Options personnalisées |
📖 Utilisation
🎯 Utilisation de base
- Lancer YTSage
- Collez l'URL YouTube (ou utilisez le bouton « Coller l'URL »)
- Cliquez sur « Analyser »
- Sélectionnez le format :
Videopour les téléchargements de vidéosAudio Onlypour l'extraction audio
- Choisissez les options :
- Activer les sous-titres et sélectionner la langue
- Activer la fusion des sous-titres
- Enregistrer la vignette
- Supprimer les segments de sponsors
- Enregistrer la description
- Intégrer des chapitres
- Sélectionnez le répertoire de sortie
- Cliquez sur "Télécharger"
💡 Le répertoire de téléchargement par défaut est le dossier « Téléchargements » de l'utilisateur.
📋 Téléchargement de la liste de lecture
- Coller l'URL de la liste de lecture
- Cliquez sur « Analyser »
- ** Sélectionnez des vidéos dans le sélecteur de playlist (facultatif, par défaut : toutes) **
- Choisissez le format/qualité souhaité
- Cliquez sur "Télécharger"
💡 L'application gère automatiquement la file d'attente de téléchargement
🌍 Mode générique pour les sites non YouTube
Utilisez le mode générique lorsque vous souhaitez que YTSage accepte les URL de sites pris en charge par yt-dlp, tels que Dailymotion, CBC Gem, TikTok et autres.
Comment l'utiliser :
- Ouvrez
Download Settings. - Activez
Generic Mode. - Collez une URL de vidéo ou de playlist non YouTube prise en charge.
- Cliquez sur
Analyze. - Choisissez un format et téléchargez comme d'habitude.
Remarques :
- Le mode générique modifie uniquement la validation de l'URL dans YTSage. Le site cible doit toujours être pris en charge par votre version yt-dlp installée.
- Certains sites nécessitent des cookies, une session de connexion, un proxy ou des arguments yt-dlp supplémentaires selon l'extracteur.
- Si un site échoue, mettez d'abord à jour yt-dlp à partir de l'onglet de mise à jour intégré avant de signaler le problème.
🧰 Options multimédia et de téléchargement
- Options de sous-titres : Filtrez les langues et intégrez des sous-titres dans le fichier vidéo
- Fusion des sous-titres : Fusionnez les sous-titres dans le fichier vidéo pour les sous-titres codés en dur
- Enregistrer la description : Enregistrez la description de la vidéo sous forme de fichier texte
- Enregistrer la vignette : Enregistrez la vignette de la vidéo en tant que fichier image
- Intégrer les chapitres : Intégrer des marqueurs de chapitre en tant que métadonnées pour les lecteurs vidéo compatibles
- Supprimer les segments de sponsor : Supprimez les segments de sponsor de la vidéo à l'aide de SponsorBlock
- Découper la vidéo : Téléchargez uniquement des parties spécifiques d'une vidéo en spécifiant des plages de temps au format
HH:MM:SS
⚙️ Paramètres de sortie et de fichier
- Speed Limiter : Limitez la vitesse de téléchargement, par exemple
500Kà 500 Ko/s - Enregistrer le chemin de téléchargement : Enregistrez le chemin de téléchargement par défaut pour les prochains téléchargements. Disponible dans Paramètres de téléchargement → Chemin de téléchargement.
- Format du nom de fichier de sortie : Personnalisez le format du nom de fichier de sortie à l'aide de variables telles que
%(title)s,%(uploader)set%(resolution)s. Disponible dans Paramètres de téléchargement → Format du nom de fichier. - Forcer le format de sortie : Forcer les téléchargements de vidéos dans un format de conteneur spécifique tel que
mp4,webmoumkv. Disponible dans Paramètres de téléchargement → Paramètres du format de sortie. - Conversion de format audio : Convertissez les téléchargements audio uniquement vers les formats préférés tels que
AAC,MP3,FLAC,WAV,Opus,M4A,Vorbis, ouBest. Disponible dans Paramètres de téléchargement → Paramètres de format audio. - Normalisation audio : Standardisez le volume pour les téléchargements audio uniquement à l'aide de l'EBU R128.
🌐 Accès et réseau
- Connexion avec des cookies : Connectez-vous à YouTube en utilisant des cookies pour accéder au contenu privé.
Comment l'utiliser :
- Recommandé : Utilisez l'option intégrée
Extract cookies from browserdans l'application, puis sélectionnez votre navigateur et éventuellement un profil. - Vous pouvez également extraire les cookies manuellement :
une. Exportez les cookies de votre navigateur en utilisant une extension comme cookie-editor
b. Copiez les cookies au format Netscape
c. Créez un fichier nommé
cookies.txtet collez-y les cookies d. Sélectionnez le fichiercookies.txtdans l'application
- Recommandé : Utilisez l'option intégrée
- Prise en charge du proxy : Utilisez un serveur proxy pour les téléchargements, par exemple
http://<proxy-server>:<port> - Mode générique : Autorisez YTSage à analyser et à télécharger à partir de sites non YouTube pris en charge par yt-dlp. Activez-le depuis Paramètres de téléchargement → Mode générique.
🛠️ Outils et entretien
- Commandes personnalisées : Accédez aux fonctionnalités avancées de yt-dlp via des arguments de ligne de commande
- Onglet Mise à jour : Gérez les outils de mise à jour intégrés à partir d'un seul endroit dans les options personnalisées :
- Mises à jour yt-dlp : Vérifiez les mises à jour et basculez entre les versions stables et nocturnes
- FFmpeg Version Checker : Vérifiez votre version de FFmpeg et ouvrez les guides d'installation
- Mises à jour Deno : Vérifiez et mettez à jour le runtime Deno
- Détection FFmpeg/yt-dlp/Deno : Détecte automatiquement les chemins et versions FFmpeg, yt-dlp et Deno à partir de la boîte de dialogue À propos.
- Historique des téléchargements : affichez les téléchargements passés avec des vignettes et des statuts à partir du bouton Historique.
🌍 Localisation
YTSage prend en charge 14 langues pour une accessibilité mondiale. Sélectionnez votre langue préférée dans Options personnalisées → Langue.
Langues prises en charge
| Langue | Codes | Langue | Codes |
|---|---|---|---|
| 🇺🇸 Anglais | en |
Espagnol | es |
| 🇸🇦 Arabe | ar |
🇫🇷 Français | fr |
| 🇩🇪 Allemand | de |
🇮🇳 Hindi | hi |
| 🇮🇩 Indonésien | id |
🇮🇹 Italien | it |
| 🇯🇵 Japonais | ja |
🇵🇱 Polonais | pl |
| 🇧🇷 Portugais | pt |
🇷🇺 Russe | ru |
| 🇹🇷 Turc | tr |
🇨🇳 Chinois | zh |
Traductions README
| Langue | Fichier | Langue | Fichier |
|---|---|---|---|
| 🇺🇸 Anglais | README.md | Espagnol | README.es.md |
| 🇸🇦 Arabe | README.ar.md | 🇫🇷 Français | README.fr.md |
| 🇩🇪 Allemand | README.de.md | 🇮🇳 Hindi | README.hi.md |
| 🇮🇩 Indonésien | README.id.md | 🇮🇹 Italien | README.it.md |
| 🇯🇵 Japonais | README.ja.md | 🇵🇱 Polonais | README.pl.md |
| 🇧🇷 Portugais | README.pt.md | 🇷🇺 Russe | README.ru.md |
| 🇹🇷 Turc | README.tr.md | 🇨🇳 Chinois | README.zh.md |
💡 Vous voulez contribuer à une traduction ? Consultez la section Contributing pour nous aider à ajouter plus de langues !
🛠️ Dépannage
Cliquez pour afficher les problèmes courants et les solutions
- Le tableau de format ne s'affiche pas : Mettez à jour yt-dlp vers la dernière version et passez à yt-dlp tous les soirs.
- Échec du téléchargement : Vérifiez votre connexion Internet et assurez-vous que la vidéo est disponible.
- Erreurs de téléchargement spécifiques :
- Vidéos privées : Utilisez l'authentification par cookie pour accéder au contenu privé.
- Contenu soumis à une limite d'âge : Connectez-vous à votre compte YouTube pour visionner des vidéos soumises à une limite d'âge.
- Vidéos géo-bloquées : Pensez à utiliser un VPN pour contourner les restrictions régionales.
- Vidéos supprimées/supprimées : La vidéo n'est plus disponible sur YouTube.
- Diffusions en direct : Les diffusions en direct ne peuvent pas être téléchargées ; attendez la fin du flux.
- Erreurs réseau : Vérifiez votre connexion Internet et réessayez.
- URL invalides : Assurez-vous que l'URL est correcte et qu'elle provient d'une plate-forme prise en charge.
- Contenu Premium : Nécessite un abonnement YouTube Premium.
- Blocs de droits d'auteur : Le contenu est bloqué en raison de restrictions de droits d'auteur.
- Séparez les fichiers vidéo et audio après le téléchargement : Cela se produit lorsque FFmpeg est manquant ou n'est pas détecté. YTSage nécessite FFmpeg pour fusionner des flux vidéo et audio de haute qualité.
- Solution : Assurez-vous que FFmpeg est installé et accessible dans le PATH de votre système. Pour les utilisateurs Windows, l'option la plus simple consiste à télécharger le fichier
YTSage-v<version>-ffmpeg.exe, fourni avec FFmpeg.
- Solution : Assurez-vous que FFmpeg est installé et accessible dans le PATH de votre système. Pour les utilisateurs Windows, l'option la plus simple consiste à télécharger le fichier
🛡️ Avertissement Windows Defender / Antivirus
Certains logiciels antivirus peuvent signaler les fichiers .exe comme de faux positifs. Il s'agit d'une limitation connue des applications packagées.
Pourquoi cela se produit :
- L'heuristique antivirus peut identifier à tort les exécutables compressés comme suspects
Alternatives sûres :
- ✅ Utiliser l'installation pip :
pip install ytsage(recommandé) - ✅ Construire à partir des sources : en suivant ceci guide
- ✅ Liste blanche de l'application dans votre logiciel antivirus
🍎 macOS : "L'application est endommagée et ne peut pas être ouverte"
Si vous voyez cette erreur sur macOS Sonoma ou version ultérieure, vous devez supprimer l'attribut de quarantaine.
- Ouvrez le terminal (vous pouvez le trouver en utilisant Spotlight).
- Tapez la commande suivante mais n'appuyez pas encore sur Entrée. Assurez-vous d'inclure l'espace à la fin :
xattr -d com.apple.quarantine - Faites glisser le fichier
YTSage.appdepuis votre fenêtre du Finder et déposez-le directement dans la fenêtre du Terminal. Cela collera automatiquement le chemin de fichier correct. - Appuyez sur Entrée pour exécuter la commande.
- Essayez d'ouvrir à nouveau YTSage.app. Il devrait maintenant se lancer correctement.
Emplacements de configuration (avancé)
- Windows :
%LOCALAPPDATA%\YTSage - macOS :
~/Library/Application Support/YTSage - Linux :
~/.local/share/YTSage
💖 Parrainer
Si YTSage vous fait gagner du temps, envisagez de parrainer le projet. Le parrainage permet de couvrir le temps de développement, les tests sur toutes les plateformes et les améliorations futures.
- Commanditaires GitHub : https://github.com/sponsors/oop7
- Le lien du sponsor est également disponible directement dans l'application à partir de la boîte de dialogue À propos.
👥 Contribuer
Nous apprécions les contributions ! Voici comment vous pouvez aider :
- 🍴 Forkez le référentiel
- 🌿 Créez votre branche de fonctionnalités :
git checkout -b feature/AmazingFeature
- 💾 Validez vos modifications :
git commit -m 'Add some AmazingFeature'
- 📤 Push vers l'agence :
git push origin feature/AmazingFeature
- 🔄 Ouvrir une Pull Request
🌍 Contribuer aux traductions
- Mettez à jour le fichier README localisé correspondant (par exemple
README.es.md) - Gardez les chaînes de l'application synchronisées en éditant
ytsage/languages/<code>.json - Si votre langue est manquante, partez de
README.mdet créezREADME.<code>.md
📂 Structure du projet
YTSage – Structure du projet
Ce document décrit la structure des dossiers organisés de YTSage.
📁 Structure du projet
YTSage/
├── 📁 .github/ # GitHub configuration
│ ├── 📁 ISSUE_TEMPLATE/ # Issue templates
│ │ └── 🐛-bug-report.md # Bug report template
│ ├─── 📁 workflows/ # GitHub Actions workflows
│ │ ├── build-linux.yml # Linux build workflow
│ │ ├── build-macos.yml # macOS build workflow
│ │ │── build-windows.yml # Windows build workflow
| | └── release-all.yml # Master release workflow
│ └── 📄 CI_CD_README.md # CI/CD documentation
├── 📁 branding/ # Branding assets (Screenshots, SVGs)
│ ├── 📁 icons/ # Application icons
│ ├── 📁 screenshots/ # Screenshots for documentation
│ └── 📁 svg/ # SVG assets
├── 📄 LICENSE # License file
├── 📄 pyproject.toml # Project metadata and dependencies
├── 📄 README.md # Project documentation
├── 📄 requirements.txt # Python dependencies (dev)
└── 📁 ytsage/ # Source package
├── 📁 assets/ # Runtime assets
│ ├── 📁 Icon/ # Application icons
│ └── 📁 sound/ # Audio files
├── 📁 languages/ # Localization files
│ ├── 📄 ar.json # Arabic translation
│ ├── 📄 de.json # German translation
│ ├── 📄 en.json # English translation
│ └── ... # Other languages
├── 📁 core/ # Core business logic
│ ├── 📄 __init__.py # Core package init
│ ├── 📄 ytsage_deno.py # Deno integration
│ ├── 📄 ytsage_downloader.py # Download functionality
│ ├── 📄 ytsage_ffmpeg.py # FFmpeg integration
│ ├── 📄 ytsage_utils.py # Utility functions
│ └── 📄 ytsage_yt_dlp.py # yt-dlp integration
├── 📁 gui/ # User interface components
│ ├── 📄 __init__.py # GUI package init
│ ├── 📄 ytsage_gui_main.py # Main application window
│ └── 📁 ytsage_gui_dialogs/ # Dialog classes
├── 📁 utils/ # Utility modules
│ ├── 📄 __init__.py # Utils package init
│ ├── 📄 ytsage_config_manager.py # Configuration management
│ └── 📄 ytsage_logger.py # Logging utilities
├── 📄 __init__.py # Package entry point
└── 📄 main.py # Main execution script
⭐️ Histoire des étoiles
📜 Licence
Ce projet est sous licence MIT - voir le fichier LICENSE pour plus de détails.
🙏 Remerciements
Afficher les remerciements
Un merci sincère à tous ceux qui ont contribué à ce projet en ouvrant un ticket pour suggérer une amélioration ou signaler un bug.
| Composants de base | |
|---|---|
| yt-dlp | Moteur de téléchargement |
| FFmpeg | Traitement multimédia |
| Déno | Runtime pour l'intégration avec yt-dlp |
| Bibliothèques et frameworks | |
| PySide6 | Cadre GUI |
| Oreiller | Traitement d'images |
| demandes | Demandes HTTP |
| emballage | Version et gestion des packages |
| markdown | Rendu Markdown |
| loguru | Journalisation |
| Actifs et contributeurs | |
| Nouvelle notification 09 par Universfield | Son de notification |
| viru185 | Contributeur de code |
⚠️ Avis de non-responsabilité
Cet outil est destiné à un usage personnel uniquement. Veuillez respecter les conditions d'utilisation de YouTube et les droits des créateurs de contenu.
Réalisé avec ❤️ par oop7



