YTConverter y yt-dlp: descargar vídeo y audio de forma limpia
Un programa de terminal con menús para descargar vídeo y audio, montado para que las actualizaciones no se pisen.
Índice

YTConverter es un programa de terminal, con menús, para descargar vídeo y audio. Por debajo usa yt-dlp, que es quien hace de verdad la descarga, y FFmpeg, que une y convierte los archivos. Esta guía lo instala de forma limpia en Windows, macOS y Android, y en CachyOS explica cómo usar directamente yt-dlp desde el repositorio oficial.
Úsalo solo con contenido tuyo, con permiso de su autor, con una licencia que permita descargarlo o cuando la ley lo permita. Descargar vídeos va contra las condiciones de uso de YouTube. Esta guía no explica cómo saltarse protecciones anticopia, muros de pago ni controles de acceso.
Cómo lo vamos a montar
Cada pieza con un único responsable, para que las actualizaciones no se pisen:
- El gestor de paquetes del sistema instala FFmpeg, Deno y compañía.
- Git descarga y actualiza el código de YTConverter.
- Un entorno virtual de Python (
.venv) guarda sus librerías, separadas del resto del sistema.
En 2026, yt-dlp necesita para YouTube un intérprete de JavaScript (Deno) y unos scripts llamados EJS. Por eso instalaremos yt-dlp[default], que los incluye, y no solo yt-dlp.
Windows 10 y 11
En PowerShell, comprueba que WinGet funciona (winget --version) e instala las herramientas:
winget install --id Git.Git -e
winget install --id Python.Python.3.14 -e
winget install --id Gyan.FFmpeg -e
winget install --id yt-dlp.yt-dlp -e
winget install --id DenoLand.Deno -e
Antes de instalar, puedes comprobar que cada nombre corresponde al programa que esperas con winget search --id Git.Git -e (y así con cada uno).
Cierra todas las terminales, abre una nueva y descarga YTConverter:
New-Item -ItemType Directory -Force "$HOME\Applications" | Out-Null
cd "$HOME\Applications"
git clone https://github.com/kaifcodec/ytconverter.git
cd .\ytconverter\standalone
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install --upgrade pip
.\.venv\Scripts\python.exe -m pip install -U -r .\requirements.txt
.\.venv\Scripts\python.exe -m pip install -U "yt-dlp[default]"
Ábrelo:
.\.venv\Scripts\python.exe .\ytconverter.py
Para abrirlo desde cualquier carpeta, crea %USERPROFILE%\bin\ytconverter.cmd con este contenido y añade %USERPROFILE%\bin a tu PATH de usuario:
@echo off
set "APP=%USERPROFILE%\Applications\ytconverter\standalone"
pushd "%APP%" >nul
"%APP%\.venv\Scripts\python.exe" "%APP%\ytconverter.py" %*
set "RC=%ERRORLEVEL%"
popd >nul
exit /b %RC%
El pushd es importante: YTConverter busca su archivo de versión en la carpeta desde la que se ejecuta.
macOS
Necesitas las herramientas de línea de comandos (xcode-select --install) y Homebrew. Después:
brew install git [email protected] ffmpeg yt-dlp
La fórmula de yt-dlp ya trae Deno y los scripts EJS. Descarga YTConverter y prepara su entorno:
mkdir -p ~/Applications && cd ~/Applications
git clone https://github.com/kaifcodec/ytconverter.git
cd ytconverter/standalone
python3 -m venv .venv
./.venv/bin/python -m pip install --upgrade pip
./.venv/bin/python -m pip install -U -r requirements.txt
./.venv/bin/python -m pip install -U "yt-dlp[default]"
./.venv/bin/python ./ytconverter.py
Para abrirlo desde cualquier carpeta, crea ~/.local/bin/ytconverter, dale permiso con chmod +x y asegúrate de que ~/.local/bin está en tu PATH:
#!/usr/bin/env bash
set -e
APP="$HOME/Applications/ytconverter/standalone"
cd "$APP"
exec "$APP/.venv/bin/python" "$APP/ytconverter.py" "$@"
Android, con Termux
Instala Termux solo desde F-Droid o desde sus publicaciones oficiales en GitHub, y sus complementos desde la misma fuente: las firmas no coinciden entre fuentes distintas.
termux-setup-storage
pkg update && pkg upgrade
pkg install git python ffmpeg deno
cd ~
git clone https://github.com/kaifcodec/ytconverter.git
cd ytconverter/standalone
python -m venv .venv
./.venv/bin/python -m pip install --upgrade pip
./.venv/bin/python -m pip install -U -r requirements.txt
./.venv/bin/python -m pip install -U "yt-dlp[default]"
termux-setup-storage pide permiso para guardar en tu carpeta de descargas (~/storage/downloads). Crea el lanzador en ~/.local/bin/ytconverter, con chmod +x. En Android, además, tiene que añadir el entorno al PATH, porque YTConverter llama también al comando yt-dlp:
#!/data/data/com.termux/files/usr/bin/bash
set -e
APP="$HOME/ytconverter/standalone"
cd "$APP"
export PATH="$APP/.venv/bin:$PATH"
exec "$APP/.venv/bin/python" "$APP/ytconverter.py" "$@"
CachyOS: yt-dlp desde el repositorio oficial
YTConverter no está en ningún repositorio oficial, así que en CachyOS usamos directamente yt-dlp, que sí lo está y hace lo mismo desde el terminal. Arrastra solo Deno y los scripts EJS:
sudo pacman -S yt-dlp ffmpeg
Lo básico:
yt-dlp -F "URL" # ver los formatos disponibles
yt-dlp "URL" # descargar la mejor calidad
yt-dlp -x --audio-format mp3 "URL" # solo el audio, en MP3
yt-dlp --list-subs "URL" # ver los subtítulos
Se actualiza con el sistema: sudo pacman -Syu.
Usarlo
Abre YTConverter, pega la dirección y sigue el menú. Si algo no sale como esperabas, estas órdenes de yt-dlp ayudan a saber si el problema es de YTConverter, de yt-dlp o del vídeo:
yt-dlp -F "URL": los formatos que existen. Si una calidad no aparece aquí, YTConverter tampoco puede sacarla.yt-dlp --list-subs "URL": los subtítulos.yt-dlp --simulate "URL": prueba sin descargar nada.
En calidades altas, el vídeo y el audio van por separado y FFmpeg los une. Y convertir a MP3 con mucha calidad no recupera la que el original no tenía.
Si YTConverter te pregunta si quieres actualizarse solo, responde n. Su actualizador automático sustituye la instalación sin respetar el entorno que hemos montado. Actualiza a mano, como se explica abajo.
Actualizar
Las herramientas, con tu gestor: winget upgrade --id yt-dlp.yt-dlp -e (y FFmpeg y Deno) en Windows; brew upgrade en macOS; pkg upgrade en Termux.
YTConverter, desde su carpeta:
git status
git pull --ff-only
Y después, dentro de standalone, vuelve a instalar sus librerías en el entorno: las dos líneas de pip install -U de la instalación.
No uses git reset --hard como solución para todo: borra cualquier cambio local sin avisar.
Cookies y cuentas
Las cookies de una sesión iniciada equivalen a tu contraseña: no las subas a GitHub, no las pegues en un foro y no las mandes por Discord. Si un contenido legítimo necesita iniciar sesión, sigue la documentación de yt-dlp.
Si algo falla
ModuleNotFoundError: vuelve a instalar las librerías con el Python del entorno (.venv), no con el del sistema.- Falta el intérprete de JavaScript: comprueba
deno --versiony prueba conyt-dlp -v --simulate "URL". - YouTube pide iniciar sesión o dice que no eres humano: actualiza yt-dlp, comprueba Deno y EJS, y prueba con
--simulate. - No encuentra FFmpeg:
ffmpeg -version; si falla, reinstálalo con tu gestor de paquetes. - Vídeo sin sonido: muchos formatos son solo vídeo; mira
yt-dlp -Fy que FFmpeg esté instalado. - El lanzador solo funciona desde una carpeta: tiene que entrar en
standaloney usar el Python del entorno.
Nunca:
- instales librerías con
sudo pip install, - ejecutes YTConverter como administrador,
- ni mezcles varias formas de instalar la misma pieza.
Para desinstalar: borra la carpeta ytconverter y el lanzador. No quites Python, Git, FFmpeg, yt-dlp ni Deno sin comprobar antes que no los usa nada más.
Fuentes: YTConverter, yt-dlp, yt-dlp y EJS y condiciones de YouTube.


