feat: add Spanish README and improve channel/playlist handling
All checks were successful
CI / test (push) Successful in 52s
All checks were successful
CI / test (push) Successful in 52s
* Add complete Spanish translation (README.es.md) * Restructure English README for clarity and conciseness * Filter out YouTube Shorts from channel video listings (sort=4) * Add fallback for video count using playlist metadata when API returns zero * Add get_playlist_metadata() to fetch metadata without full video list * Add is_short() utility to detect YouTube Shorts by duration, badges, and type * Export is_short from yt_data_extract for use across modules
This commit is contained in:
168
README.es.md
Normal file
168
README.es.md
Normal file
@@ -0,0 +1,168 @@
|
||||
# yt-local
|
||||
|
||||
Un cliente local de YouTube que se ejecuta en tu máquina. Sin anuncios, sin JavaScript, con soporte para Tor.
|
||||
|
||||
<p align="center">
|
||||
<a href="#caracteristicas">Características</a> •
|
||||
<a href="#instalación">Instalación</a> •
|
||||
<a href="#uso">Uso</a> •
|
||||
<a href="#tor">Tor</a> •
|
||||
<a href="#desarrollo">Desarrollo</a>
|
||||
</p>
|
||||
|
||||
---
|
||||
|
||||
## ¿Qué es?
|
||||
|
||||
yt-local es un servidor web local que actúa como proxy entre tu navegador y YouTube. Las páginas se cargan rápido, sin anuncios ni tracking. Las peticiones pueden pasar por Tor de forma opcional.
|
||||
|
||||
**No usa la API de YouTube.** Hace las mismas peticiones que haría la web normal, pero sin todo lo demás.
|
||||
|
||||
## Características
|
||||
|
||||
- Navegación anónima con **Tor opcional**
|
||||
- Sin anuncios ni JavaScript
|
||||
- Tres temas: claro, gris y oscuro
|
||||
- Listas de reproducción locales (no se pierden si YouTube borra videos)
|
||||
- Sistema de suscripciones independiente de YouTube
|
||||
- Soporte de subtítulos
|
||||
- Segmentos de SponsorBlock saltados automáticamente
|
||||
- Calidades de 144p a 2160p con soporte HLS
|
||||
- Descarga de videos (desactivada por defecto)
|
||||
- Comentarios visibles al instante, sin lazy-loading
|
||||
|
||||
## Instalación
|
||||
|
||||
### Linux / macOS
|
||||
|
||||
```bash
|
||||
python3 -m venv venv
|
||||
source venv/bin/activate
|
||||
pip install -r requirements.txt
|
||||
python server.py
|
||||
```
|
||||
|
||||
### Windows
|
||||
|
||||
Descarga el zip de [Releases](https://github.com/user234683/youtube-local/releases) y ejecuta `run.bat`.
|
||||
|
||||
### Con Make
|
||||
|
||||
```bash
|
||||
make install # Dependencias
|
||||
make dev # Servidor
|
||||
make test # Tests
|
||||
make help # Todos los comandos
|
||||
```
|
||||
|
||||
## Uso
|
||||
|
||||
El servidor arranca en `http://localhost:9010/`
|
||||
|
||||
Para ver un video, añade el dominio como prefijo:
|
||||
|
||||
```
|
||||
http://localhost:9010/https://www.youtube.com/watch?v=VIDEO_ID
|
||||
```
|
||||
|
||||
### Redirector
|
||||
|
||||
Puedes usar una extensión del navegador como [Redirector](https://github.com/einaregilsson/Redirector) para redirigir YouTube automáticamente:
|
||||
|
||||
| Campo | Valor |
|
||||
|-------|-------|
|
||||
| Patrón | `^(https?://(?:[a-zA-Z0-9_-]*\.)?(?:youtube\.com|youtu\.be|youtube-nocookie\.com)/.*)` |
|
||||
| Redirigir a | `http://localhost:9010/$1` |
|
||||
| Modo | Expresión regular |
|
||||
|
||||
Activa "Iframes" en las opciones avanzadas para que funcionen los embeds.
|
||||
|
||||
### Modo portable
|
||||
|
||||
Crea un archivo vacío `settings.txt` en el directorio principal. Así toda la configuración y datos se guardan ahí en vez de en `~/.yt-local`.
|
||||
|
||||
## Tor
|
||||
|
||||
### Opción rápida: Tor Browser
|
||||
|
||||
Abre Tor Browser y déjalo abierto. En los ajustes de yt-local pon "Route Tor" en "On, except video".
|
||||
|
||||
### Tor independiente
|
||||
|
||||
**Debian/Ubuntu:**
|
||||
```bash
|
||||
sudo apt install tor
|
||||
sudo systemctl start tor
|
||||
```
|
||||
Cambia el puerto Tor a `9050` en los ajustes.
|
||||
|
||||
**Windows:**
|
||||
Crea un acceso directo con: `tor.exe SOCKSPort 9150 ControlPort 9151`
|
||||
|
||||
### Routing de video por Tor
|
||||
|
||||
Pon "Route Tor" en "On, including video". Es más lento y consume ancho de banda de la red Tor — considera hacer una [donación a los nodos de Tor](https://torservers.net/donate.html).
|
||||
|
||||
## Importar suscripciones
|
||||
|
||||
1. Ve a [Google Takeout](https://takeout.google.com/takeout/custom/youtube)
|
||||
2. Selecciona solo "subscriptions" y descarga el CSV
|
||||
3. En yt-local, importa el archivo desde el gestor de suscripciones
|
||||
|
||||
Formatos soportados: CSV de Google Takeout, JSON de NewPipe, OPML, y JSON antiguo de Google Takeout.
|
||||
|
||||
## Desarrollo
|
||||
|
||||
```
|
||||
yt-local/
|
||||
├── server.py # Punto de entrada, servidor WSGI
|
||||
├── settings.py # Gestión de configuración
|
||||
├── youtube/
|
||||
│ ├── util.py # Funciones auxiliares, routing Tor
|
||||
│ ├── watch.py # Página de video
|
||||
│ ├── channel.py # Páginas de canal
|
||||
│ ├── search.py # Búsquedas
|
||||
│ ├── subscriptions.py # Suscripciones (SQLite)
|
||||
│ ├── local_playlist.py # Listas locales
|
||||
│ ├── yt_data_extract/ # Parser del JSON de YouTube
|
||||
│ └── ...
|
||||
├── tests/ # Tests con pytest
|
||||
└── docs/HACKING.md # Guía de desarrollo
|
||||
```
|
||||
|
||||
### Comandos útiles
|
||||
|
||||
```bash
|
||||
make test # Ejecutar tests
|
||||
make lint # Verificar estilo
|
||||
make i18n-extract # Extraer cadenas
|
||||
make i18n-init LANG_CODE=fr # Nuevo idioma
|
||||
make i18n-compile # Compilar traducciones
|
||||
```
|
||||
|
||||
Python **3.8+** requerido. El código sigue PEP 8. Los mensajes de commit deben ser descriptivos.
|
||||
|
||||
### Notas de compatibilidad
|
||||
|
||||
- **Python 3.8+**: Versión mínima requerida
|
||||
- **HLS**: Soporte experimental para streaming en videos multi-audio
|
||||
- **Canales con limitaciones**: Algunos canales devuelven pocos videos por respuesta. Esto es comportamiento de YouTube, no de yt-local. El proyecto usa la API interna de YouTube (innertube), **no la API pública de YouTube**.
|
||||
|
||||
## Licencia
|
||||
|
||||
GNU AGPLv3 o posterior. Ver [LICENSE](LICENSE).
|
||||
|
||||
## Proyectos similares
|
||||
|
||||
- [invidious](https://github.com/iv-org/invidious) Similar a este proyecto, pero permite alojarlo como servidor para muchos usuarios
|
||||
- [Yotter](https://github.com/ytorg/Yotter) Similar a este proyecto y a invidious. También soporta Twitter
|
||||
- [FreeTube](https://github.com/FreeTubeApp/FreeTube) (Similar a este proyecto, pero es una app Electron fuera del navegador)
|
||||
- [youtube-local](https://github.com/user234683/youtube-local) primer proyecto en el que se basa yt-local
|
||||
- [NewPipe](https://newpipe.schabi.org/) (app para Android)
|
||||
- [mps-youtube](https://github.com/mps-youtube/mps-youtube) (programa solo para terminal)
|
||||
- [youtube-viewer](https://github.com/trizen/youtube-viewer)
|
||||
- [smtube](https://www.smtube.org/)
|
||||
- [Minitube](https://flavio.tordini.org/minitube), [github aquí](https://github.com/flaviotordini/minitube)
|
||||
- [toogles](https://github.com/mikecrittenden/toogles) (solo inserta videos, no usa mp4)
|
||||
- [YTLibre](https://git.sr.ht/~heckyel/ytlibre) solo extrae video
|
||||
- [youtube-dl](https://rg3.github.io/youtube-dl/), en el que se basó este proyecto
|
||||
Reference in New Issue
Block a user