K-Snag: descarga videos y audio de YouTube en MP4 1080p, 4K o MP3. Apps para Windows y Android, gratis y sin anuncios. Usa yt-dlp y FFmpeg.
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗K-Snag es una app gratuita y de código abierto para Windows y Android:
Por dentro usa yt-dlp, el motor de descarga más completo que existe. La app lo mantiene al día sola, para que siga funcionando cuando YouTube cambia algo.
Hasta noviembre de 2026 se llamó K-Downloader (Windows 2.0.2 y Android 1.0.2), y antes, "YouTube Ultra HD Video Downloader". La 2.0 es una reconstrucción desde cero. Si ya la tenías instalada, se actualiza sola con el nombre nuevo y conserva tu historial y tus ajustes.
Ctrl+V en cualquier parte o arrastra el enlace a la ventana;| Pieza | Qué es | De dónde sale |
|---|---|---|
| La app | Interfaz HTML/CSS/JS en una ventana de pywebview (WebView2) | Este repositorio |
| Intérprete | Python oficial 3.13 embeddable, firmado por la Python Software Foundation | python.org, dentro del instalador |
| Motor | yt-dlp como zipapp: un archivo de Python puro, no un .exe | GitHub de yt-dlp. Canal nightly por defecto, estable opcional |
| Conversor | FFmpeg release essentials (une audio y video, convierte a MP3) | gyan.dev |
| Componente de YouTube | Deno, el entorno de JavaScript que yt-dlp usa para los desafíos de YouTube | GitHub oficial de Deno |
engine.json (por ejemplo, "exigir yt-dlp ≥ X") y todas las instalaciones la reciben sin una versión nueva de la app. Detalles en docs/engine-hints.md.Requisitos:
Pasos:
Instalar-K-Snag.cmd desde https://ksnagapp.vercel.app/descargar (o desde Releases)..cmd descargados de internet, y por eso no se abre desde el navegador.
kd-bundle-<versión>.zip (unos 25 MB) desde GitHub Releases;%LOCALAPPDATA%\Programs\K-Downloader, sin pedir permisos de administrador (la carpeta conserva el nombre anterior para que las instalaciones existentes sigan actualizándose);¿Es seguro el instalador? Es un archivo de texto: puedes abrirlo con el Bloc de notas antes de ejecutarlo.
- Solo usa
curl.exeytar.exe, que vienen con Windows.- Se detiene si el SHA-256 del paquete no coincide con el que trae escrito.
Desinstalar: Configuración → Aplicaciones → Aplicaciones instaladas → K-Snag → … → Desinstalar.
%LOCALAPPDATA%\K-Downloader.Windows 11 trae Smart App Control, que bloquea cualquier .exe nuevo que no esté firmado o que Microsoft todavía no conozca. Un .exe hecho con PyInstaller o un instalador de Inno Setup quedarían bloqueados en esas PC sin dar opción a abrirlos. La firma de código cuesta dinero y la reputación tarda meses.
Por eso K-Snag no genera ningún ejecutable propio:
pythonw.exe oficial firmado por la Python Software Foundation..cmd que puedes leer.El resultado funciona incluso con Smart App Control activado. Lo único que Smart App Control frena es abrir el .cmd recién descargado, porque viene de internet; por eso existe el paso de Desbloquear. Si algún día el proyecto obtiene firma de código (ver la política de firma), podría ofrecer un .exe firmado.
K-Snag para Android hace lo mismo desde el celular: en YouTube o en cualquier app, toca Compartir › K-Snag, elige el formato y el archivo queda en Descargas › K-Snag. También puedes pegar el enlace.
Instalación:
Requisitos: Android 8.0 o superior. El APK de 64 bits (casi todos los celulares) pesa unos 54 MB, el de 32 bits unos 46 MB y el x86_64 unos 57 MB; ya instalada, con su motor, ocupa unos 230 MB. Están todos en Releases con sus SHA-256.
Los archivos se siguen llamando
K-Downloader-Android-<abi>.apk: las versiones 1.0.0 a 1.0.2 solo se actualizan con ese nombre.
¿Por qué no está en Google Play? Google Play no acepta apps que descargan videos de YouTube. Las versiones salen de este repositorio, firmadas siempre con la misma llave (certificado SHA-256 79:F7:78:12:B9:9F:3F:21:39:38:F6:66:3E:7C:00:EF:3D:B8:E1:74:7A:10:C9:81:F2:66:A6:AB:E2:24:F3:1F).
Código y licencia: la app de Android está en android/, con licencia GPL-3.0-or-later, porque incluye FFmpeg y otros componentes GPL. El código fuente de esos binarios está publicado en android-sources-ytdl-0.18.1-r1 y la lista completa, en android/THIRD_PARTY_NOTICES.md. Para compilar y publicar: android/README.md y docs/release-android.md.
K-Snag es gratis, sin anuncios ni funciones de pago, y así va a seguir. Si te sirve, puedes apoyarlo en https://ksnagapp.vercel.app/donar:
@carlose3509 (desde Nequi, Bancolombia, Daviplata o cualquier banco), o PayPal.Donar es voluntario y no desbloquea nada. También ayuda dejar una estrella en GitHub, reportar errores o compartir la app. La app tiene un botón Apoyar el proyecto en la barra lateral (Windows) y Donar en la barra de abajo (Android).
Sí. La app cambió de nombre en noviembre de 2026 porque ya existía otra app llamada K-Downloader. Se actualiza encima, sin perder el historial ni los ajustes, y la web anterior (kdownloader.vercel.app) lleva a la nueva.
Por compatibilidad, algunas cosas internas conservan el nombre anterior: en Windows, las carpetas %LOCALAPPDATA%\K-Downloader y Programs\K-Downloader; en Android, el paquete io.github.kasaco223.kdownloader y los archivos APK.
YouTube cambia su sitio a menudo y eso rompe a todos los descargadores por un tiempo.
YouTube entrega los videos marcados como "para niños" con más restricciones, así que el análisis y la descarga pueden ser más lentos. Es normal: dale unos segundos más.
Hoy, sin una sesión iniciada, YouTube solo entrega esos videos en 360p. La app te avisa antes de descargar.
Puedes intentarlo con un cookies.txt de una cuenta verificada en Ajustes → Avanzado, con los riesgos de la siguiente pregunta.
Casi nunca. Solo hacen falta para contenido que exige una cuenta (privado, de miembros o para mayores de 18).
cookies.txt equivale a tu sesión: quien lo tenga entra a tu cuenta. Nunca lo compartas ni lo subas a un issue.En Windows, Chrome y Edge cifran sus cookies de forma que solo el propio navegador puede leerlas, y además bloquean el archivo mientras están abiertos. Ningún programa externo puede tomarlas de forma confiable.
Si de verdad necesitas una cuenta, exporta un archivo cookies.txt (formato Netscape) con una extensión de confianza y elígelo en Ajustes → Avanzado.
YouTube frena por un rato las conexiones que bajan mucho seguido, sobre todo con VPN o redes compartidas.
La app lo detecta y ofrece Reparar: vuelve a bajar el componente desde su fuente oficial y verifica su SHA-256.
Si tu antivirus lo vuelve a borrar, es un falso positivo: repórtalo a su fabricante.
| Qué | Dónde |
|---|---|
| Videos (Windows) | Descargas\K-Snag (se cambia en Ajustes). Si ya tenías Descargas\K-Downloader, la app sigue usando esa. |
| Videos (Android) | Descargas › K-Snag. Las descargas de antes del cambio de nombre siguen en Descargas › K-Downloader. |
| Ajustes, historial y componentes (Windows) | %LOCALAPPDATA%\K-Downloader |
| Registro de la app (Windows, para reportar errores) | %LOCALAPPDATA%\K-Downloader\logs\app.log |
| Diagnóstico (Android) | Ajustes › Acerca de K-Snag › Diagnóstico › Copiar detalles |
¿No está tu problema? Revisa el centro de ayuda o abre un issue.
K-Snag no tiene telemetría: no envía estadísticas, no tiene cuentas ni anuncios y no rastrea qué descargas. Solo se conecta a:
| Destino | Para qué |
|---|---|
| GitHub | Revisar si hay una versión nueva de la app y leer las pistas del motor (engine.json), una vez al día. Bajar yt-dlp y Deno. |
| gyan.dev | Bajar FFmpeg. |
| Los sitios de los enlaces que pegas | Analizar y descargar el video, como haría tu navegador. |
| ksnagapp.vercel.app (solo Android) | Respaldo para revisar si hay una versión nueva cuando GitHub no responde. Las páginas de ayuda y de donaciones solo se abren si tú las tocas. |
cookies.txt, solo lo lee yt-dlp en tu equipo.Descarga solo contenido que tengas derecho a guardar: el tuyo, el que tiene una licencia que lo permite o el que la ley de tu país te deja copiar para uso personal. Respeta a los creadores y los términos de cada sitio.
K-Snag no evade protecciones (DRM), no baja contenido de pago y no ayuda a saltarse bloqueos regionales. Más en https://ksnagapp.vercel.app/uso-responsable.
Necesitas Windows 10 u 11 y Python 3.11 o posterior. La app distribuida corre en Python 3.13; el CI prueba ambas versiones.
git clone https://github.com/Kasaco223/K-Snag.git
cd K-Snag
python -m venv .venv
.venv\Scripts\pip install -e ".[dev]"
.venv\Scripts\python -m kdownloader
En desarrollo, la app usa la misma carpeta de datos que la versión instalada. Para separarlas:
$env:KD_DATA_DIR = "$env:TEMP\kd-dev".
Ver la interfaz sin Python (modo simulado):
cd src\kdownloader\ui
python -m http.server 8000
scenario va de S0 a S9:
&theme=light o &theme=dark y &lang=es o &lang=en.| Carpeta | Contenido |
|---|---|
src/kdownloader/ | Backend en Python: ventana, puente con la UI, cola, historial, actualizaciones |
src/kdownloader/engine/ | Motor: componentes, procesos, presets, progreso, errores, pistas |
src/kdownloader/ui/ | Interfaz HTML/CSS/JS, sin build ni frameworks |
packaging/ | Build del bundle e instalador .cmd |
android/ | App de Android (Kotlin y Jetpack Compose, GPL-3.0-or-later): guía en android/README.md |
web/ | Sitio estático (ksnagapp.vercel.app), sin build |
tests/ | Pruebas con pytest |
docs/ | Arquitectura, publicación y pistas del motor |
.github/ | Workflows de CI y de publicación, y plantillas de issues |
App de Android: se compila con Docker, sin instalar el SDK en tu PC (detalles en android/README.md):
docker compose -f android/tools/docker/compose.yaml build
docker compose -f android/tools/docker/compose.yaml run --rm kdl :app:assembleGithubDebug -Pkdl.devAbi=arm64-v8a
docker compose -f android/tools/docker/compose.yaml run --rm kdl :core:test :app:testGithubDebugUnitTest :app:lintGithubDebug
Cómo colaborar: CONTRIBUTING.md.
.venv\Scripts\ruff check src tests
.venv\Scripts\pytest # unitarias, sin red (las que corre el CI)
.venv\Scripts\pytest -m network # motor real: usa internet, yt-dlp y FFmpeg
powershell -ExecutionPolicy Bypass -File packaging\build.ps1
Deja en dist/:
Instalar-K-Snag.cmd y su copia Instalar-K-Downloader.cmd (el nombre anterior, para los enlaces viejos)kd-bundle-<versión>.zipkd-app-<versión>.ziplatest.jsonSHA256SUMS.txtOpciones: -Version, -BaseUrl, -OutDir y -SkipTests. No compila ningún .exe.
Para probar la instalación sin publicar:
.\dist\Instalar-K-Snag.cmd --local "$PWD\dist\kd-bundle-<versión>.zip" --root "$env:TEMP\kd-prueba" --no-registry
__version__ en src/kdownloader/__init__.py.master y sube el tag vX.Y.Z.Checklist completa: docs/release.md. La app de Android se publica con su propio tag android-vX.Y.Z, con aprobación manual de la firma: docs/release-android.md.
Estado: K-Snag todavía no está firmado. Esta política se prepara para postular al programa de firma gratuita para código abierto de SignPath Foundation. Cuando sea aceptado, esta sección dirá: "Free code signing provided by SignPath.io, certificate by SignPath Foundation".
Qué se firmaría:
release.yml, a partir de un tag vX.Y.Z;Roles:
| Rol | Persona |
|---|---|
| Autor (committer) | Kasaco223 |
| Revisor (reviewer) | Kasaco223 |
| Aprobador de cada firma (approver) | Kasaco223 |
Reglas:
master por pull request con el CI en verde.packaging/requirements-runtime.txt.Privacidad: este programa no envía información a otros sistemas en red, salvo lo que pide quien lo usa (analizar y descargar los enlaces que pega) y lo que se describe en Privacidad: búsqueda de actualizaciones de la app y del motor y descarga de sus componentes, que se pueden desactivar en Ajustes.
K-Snag existe gracias a:
Lista completa de componentes y licencias: THIRD_PARTY_NOTICES.md.
android/): GPL-3.0-or-later.Los componentes de terceros conservan sus propias licencias (THIRD_PARTY_NOTICES.md y android/THIRD_PARTY_NOTICES.md).
K-Snag es un proyecto independiente. No está afiliado a YouTube ni a Google, ni cuenta con su respaldo. YouTube, Android y Google Play son marcas de Google LLC; Windows es una marca de Microsoft Corporation. Cada persona es responsable de cómo usa la app.
K-Snag is a free, open-source app for Windows and Android to download your favorite videos in the best quality:
It is powered by yt-dlp and keeps it up to date by itself, so it keeps working when YouTube changes things. Until November 2026 it was called K-Downloader (Windows 2.0.2, Android 1.0.2), and before that "YouTube Ultra HD Video Downloader"; 2.0 is a full rebuild. Existing installs update in place under the new name and keep their history and settings.
Ctrl+V anywhere, drag and drop, several links at once, and a clipboard suggestion.engine.json without a new app release. See docs/engine-hints.md.Instalar-K-Snag.cmd from https://ksnagapp.vercel.app/descargar..cmd files downloaded from the internet, so it won't start from the browser. In your Downloads folder, right-click it → Properties → check Unblock → OK.
kd-bundle-<version>.zip (about 25 MB) from GitHub Releases;%LOCALAPPDATA%\Programs\K-Downloader (no admin rights needed; the folder keeps the former name so existing installs keep updating);Requirements: Windows 10 (1803+) or 11, 64-bit, with the WebView2 Runtime.
Uninstall: Settings → Apps → Installed apps → K-Snag → Uninstall.
%LOCALAPPDATA%\K-Downloader.Why there is no .exe. Windows 11 Smart App Control blocks new executables that are unsigned or not yet known to Microsoft. So K-Snag ships no executable of its own:
pythonw.exe;.cmd script. Smart App Control only blocks opening it right after download, because it comes from the internet; that is what the Unblock step is for.K-Snag for Android does the same on your phone: in YouTube or any other app, tap Share › K-Snag, pick the format and the file lands in Downloads › K-Snag. You can also paste the link.
Install: open https://ksnagapp.vercel.app/android on your phone, tap Download APK, open it and allow installing from that source the first time. Requires Android 8.0+. The 64-bit APK is about 54 MB. The files are still named K-Downloader-Android-<abi>.apk, because versions 1.0.0–1.0.2 only update from that name.
Why not Google Play? Google Play doesn't accept apps that download YouTube videos. Every release comes from this repository, always signed with the same key (certificate SHA-256 79:F7:78:12:B9:9F:3F:21:39:38:F6:66:3E:7C:00:EF:3D:B8:E1:74:7A:10:C9:81:F2:66:A6:AB:E2:24:F3:1F).
Code and license: the Android app lives in android/ under GPL-3.0-or-later; the source of its GPL binaries is published at android-sources-ytdl-0.18.1-r1.
K-Snag is free, with no ads or paid features. If it helps you, you can support it at https://ksnagapp.vercel.app/donar: PayPal (card or account; one-time, monthly or yearly) or crypto (APT, Aptos network only). From Colombia you can also use Bre-B (@carlose3509). Donating is optional and unlocks nothing.
Are K-Downloader and K-Snag the same app? Yes. It was renamed in November 2026 because another app already used the name. It updates in place; some internals keep the old name for compatibility (the Windows folders %LOCALAPPDATA%\K-Downloader and Programs\K-Downloader, the Android package and the APK file names).
"403" or "YouTube changed something": the app updates the engine and retries. If it persists, wait for a yt-dlp fix: the app installs it automatically.
"Made for kids" videos are slower: YouTube serves them with more restrictions.
Age-restricted videos only download in 360p today without a signed-in session.
Cookies:
cookies.txt: it is your session.cookies.txt instead and pick it in Settings → Advanced.Where files go: Windows saves to Downloads\K-Snag (or Downloads\K-Downloader if you already had it); Android saves to Downloads › K-Snag.
Logs: Windows %LOCALAPPDATA%\K-Downloader\logs\app.log; Android Settings › About K-Snag › Diagnostics › Copy details.
No telemetry, no accounts, no ads. The app only connects to:
Update checks can be turned off in Settings.
Only download content you have the right to keep. K-Snag does not bypass DRM, does not download paid content and does not help get around regional blocks.
python -m venv .venv
.venv\Scripts\pip install -e ".[dev]"
.venv\Scripts\python -m kdownloader
UI preview without Python: run python -m http.server 8000 inside src\kdownloader\ui, then open http://localhost:8000/index.html?mock=1&scenario=S4. Scenarios go from S0 to S9; you can add &theme= and &lang=.
pytest runs the unit tests (offline);pytest -m network uses the real engine.packaging\build.ps1 writes everything to dist/.vX.Y.Z tag (Windows) or android-vX.Y.Z (Android). GitHub Actions builds, tests and drafts the release. See docs/release.md, docs/release-android.md and CONTRIBUTING.md.Status: K-Snag is not code-signed yet. This policy is prepared for the SignPath Foundation open-source program. Once accepted, this section will read: "Free code signing provided by SignPath.io, certificate by SignPath Foundation".
What gets signed: only artifacts built by GitHub Actions from this public repository by release.yml, from a vX.Y.Z tag.
Roles:
Rules:
master through a pull request with green CI.Privacy: this program will not transfer any information to other networked systems unless specifically requested by the user or the person installing or operating it. The only exceptions are the update checks and component downloads described under Privacy, which can be disabled in Settings.
android/) GPL-3.0-or-later.