sábado, 12 de septiembre de 2026

[Python] Quiet Stream

Aplicación TUI (Terminal User Interface) para gestionar y reproducir streams de audio y videos, construida con Textual, SQLModel, SQLite, python-vlc, yt-dlp y httpx.

## Funciones principales

- Gestión de streams y videos: agregar, editar y eliminar entradas.
- Reproducción integrada: streams de audio (URL directa) y videos (YouTube y similares vía yt-dlp).
- Controles de reproducción: anterior, siguiente, detener y volumen.
- Búsqueda y filtros: por nombre y por categoría.
- Importar / exportar JSON: backup y carga de listas, con omisión automática de duplicados por nombre o link.
- Validación de enlaces: comprueba si los streams responden; permite detener el proceso, seleccionar cuáles eliminar y confirmar.
- Temas Gruvbox Light / Dark: se alternan con Ctrl+T y la preferencia se guarda entre sesiones.
- Interfaz responsive: tablas y menú se adaptan al tamaño de la terminal.
- Persistencia local: los datos se guardan en SQLite (`streams.db`).

## Capturas de pantalla


 
 
 




## Requisitos

- Python 3.8+
- VLC Media Player instalado en el sistema

## Instalación

1. Clonar el repositorio:
 

git clone https://github.com/IsmaelHeredia/quiet-stream-python.git

cd quiet-stream-python

2. Instalar dependencias:

pip install -r requirements.txt

3. Ejecutar:

   ```bash
   python main.py
   ```

## Importación y exportación (Formato JSON)

Los respaldos exportados utilizan una lista con la siguiente estructura por cada elemento, la cual también se requiere para importar datos:

[
  {
    "nombre": "Mi stream",
    "link": "https://ejemplo.com/stream.mp3",
    "categorias": "rock, radio",
    "tipo": "stream"
  },
  {
    "nombre": "Video de ejemplo",
    "link": "https://www.youtube.com/watch?v=...",
    "categorias": "musica",
    "tipo": "video"
  }
]

 Link del proyecto 

sábado, 5 de septiembre de 2026

[FastAPI + Jinja2] Fenix Downloader

Una aplicación web moderna y ligera para descargar y convertir contenido de YouTube, orientada a un uso local y sencillo. Permite gestionar canciones en MP3, videos en MP4, listas de reproducción completas, búsqueda directa por nombre y conversión de archivos locales, con progreso en tiempo real y control total de cancelación.

## Stack Tecnológico

| Capa | Tecnologías |
|------|-------------|
| Backend | FastAPI + Jinja2 |
| Frontend | HTMX + Tailwind CSS + JavaScript |
| Extracción y media | yt-dlp + FFmpeg |

---

## Funcionalidades Principales

### Descarga desde YouTube

 
* Links sueltos: Soporte para uno o varios URLs simultáneos (canciones o videos).
* Playlists: Lectura y descarga secuencial de listas completas (audio o video).
* Exportar playlist: Genera un archivo .txt con todos los links de una playlist, sin necesidad de descargar el contenido.
* Búsqueda integrada: Búsqueda directa por nombre de canción (obteniendo el primer resultado relevante).
* Calidad de video: Selección entre 720p, 1080p (recomendado) o máxima calidad (evitando formatos AV1 pesados cuando aplica).
* Audio en español: Preferencia automática de doblaje si YouTube lo ofrece.
* Subtítulos optimizados: Español (oficial o automático) con fallback a inglés.
* Cookies opcionales: Soporte para formato Netscape (data/cookies.txt o variables de entorno) para evitar restricciones de edad, rate limits o bloqueos por región.

### Conversión Local


* MP4 / Video / Audio a MP3: Conversión flexible indicando la ruta del archivo en disco, con nombre y carpeta de salida personalizados, acompañado de una barra de progreso impulsada por FFmpeg.

### Experiencia de Uso

 
* Interfaz dinámica (HTMX): Sin recargas de página completas; incluye consolas de logs y barras de progreso independientes por cada job.
* Cancelación cooperativa: Un único botón inteligente para iniciar y detener la descarga o conversión en curso.
* Tema Claro / Oscuro: Diseño elegante con acentos verdes estilo *Gruvbox*, patrones de fondo sutiles y formularios totalmente adaptados.
* Toasts y alertas sonoras: Notificaciones visuales y de audio al finalizar una tarea (éxito, error, parcial o cancelada), incluso con la pestaña en segundo plano.
*  Omitir duplicados: Si el archivo final (MP3/MP4) ya existe en el disco, la descarga se omite automáticamente.

---

## Capturas de Pantalla 

 


---

## Requisitos del Sistema

* Python: 3.10+ (se recomienda 3.11+)
* yt-dlp: Con soporte para extensiones (yt-dlp-ejs)
* Runtime de JavaScript (para YouTube moderno): Deno 2.3 o superior (o Node 22 o superior)
* Opcional: curl_cffi para simulación de cliente (impersonation y reducción de errores 403)
* FFmpeg y FFprobe: Disponibles en el PATH del sistema

---

## Instalación y Configuración

### 1. Clonar el repositorio


git clone https://github.com/IsmaelHeredia/fenix-downloader-fastapi-jinja2.git
cd fenix-downloader-fastapi-jinja2
 

 ### 2. Crear entorno virtual e instalar dependencias

python -m venv .venv
# En Linux/macOS:
source .venv/bin/activate
# En Windows (CMD/PowerShell):
# .venv\Scripts\activate

pip install -U pip
pip install -r requirements.txt
pip install -U "yt-dlp[default]" yt-dlp-ejs "curl_cffi>=0.10"


### 3. Instalar Deno (Recomendado para la extracción de YouTube)

 
curl -fsSL https://deno.land/install.sh | sh

(Reiniciá tu terminal y comprobá la instalación con `deno --version`).

### 4. Ejecutar en modo desarrollo

uvicorn app.main:app --reload --host 127.0.0.1 --port 8000

Abrí en tu navegador: http://127.0.0.1:8000

 

Link del proyecto  

martes, 1 de septiembre de 2026

[NextJS] Fenix Forge

Fenix Forge es una aplicación web de uso local diseñada para unir archivos MP3 y generar videos MP4 personalizados. Está desarrollada con Next.js 16 y Tailwind CSS, y realiza todo el procesamiento multimedia utilizando FFmpeg nativo de forma directa en tu computadora.

## Funcionalidades principales

* Combinador de audio: Permite seleccionar múltiples MP3, reordenarlos mediante drag & drop, preescuchar cualquier track antes de procesar, seguir la lectura con barras de progreso individuales y visualizar la línea de tiempo con tiempos acumulados. Incluye detección automática de compatibilidad para concatenar audio en segundos sin reencodear (con fallback seguro si los formatos difieren).
* Generador de video: Permite asignar una imagen de fondo por canción o utilizar una global para todo el proyecto. Incluye texto centrado personalizable (con color de fuente y borde configurables, o bien la opción de exportar sin texto) y vista previa en vivo antes del render.
* Tema Gruvbox: Soporte nativo para modo claro y oscuro.
* Notificaciones: Feedback sonoro y toast emergente al completar el renderizado, junto con el tiempo total de conversión en formato legible.
* Diseño responsive: Adaptable a móviles, tablets y escritorio, con un panel de vista previa fijo en pantallas grandes.

## Capturas de pantalla


 
 

## Desarrollo local

### 1. Requisitos previos


* Node.js 18 o superior.
* FFmpeg instalado y disponible en el PATH del sistema (ffmpeg -version).
* Una fuente TrueType (.ttf) disponible para superponer texto en los videos (ej. fonts-dejavu-core).

En sistemas Debian/Ubuntu podés instalar las dependencias con:

sudo apt install ffmpeg fonts-dejavu-core

### 2. Instalación

Cloná el repositorio e instalá las dependencias:

git clone https://github.com/IsmaelHeredia/fenix-forge-nextjs.git
cd fenix-forge-nextjs
npm install


### 3. Configuración

Creá el archivo de variables de entorno:

cp .env.example .env.local

Si ffmpeg no está en el PATH global o tu fuente se encuentra en una ruta personalizada, definí las variables en .env.local:

FFMPEG_PATH=/usr/bin/ffmpeg
FFMPEG_FONT_PATH=/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf


### 4. Ejecución

Iniciá el servidor de desarrollo:

npm run dev

Accedé a la aplicación en http://localhost:3000.

 

 Link del proyecto 

[FastAPI + Jinja2] Fenix Notes

Fenix Notes es una aplicación de notas ligeras, cifradas y organizadas por espacios de trabajo, pensada para guardar ideas y recordatorios ...