Si necesitas trabajar con el proyecto sin usar Docker, es vital gestionar las dependencias directamente con pip y un entorno virtual.
Antes de comenzar, debes tener instalado:
- Python 3.10+
- FFmpeg (obligatorio para el procesamiento multimedia)
- Windows: usar binarios oficiales o
choco install ffmpeg - macOS (Homebrew):
brew install ffmpeg
- Linux (Debian/Ubuntu):
sudo apt install ffmpeg
Crea estos archivos en la carpeta app/:
.env- Variables de entornocookies.txt- Para procesar videos de YouTubebitacora.log- Archivo de logs
IMPORTANTE: El archivo
.envNO debe versionarse.
Abre una terminal (PowerShell o CMD) en el directorio raíz del proyecto.
| Tarea | Comando | Descripción |
|---|---|---|
| Crear Entorno | python -m venv .venv |
Crea el entorno virtual .venv |
| Activar Entorno | .\.venv\Scripts\activate |
Activa el entorno virtual |
| Actualizar pip | python -m pip install --upgrade pip |
Actualiza el gestor de paquetes |
| Instalar Dependencias | pip install -r requirements.txt |
Instala las librerías del proyecto |
| Desactivar Entorno | deactivate |
Sale del entorno virtual |
-
Actualizar pip:
python -m pip install --upgrade pip
-
Actualizar
requirements.txt:pip freeze > requirements.txt
Get-ChildItem -Path . -Include __pycache__ -Recurse -Directory | Remove-Item -Recurse -ForceAbre Terminal en el directorio raíz del proyecto.
| Tarea | Comando | Descripción |
|---|---|---|
| Crear Entorno | python3 -m venv .venv |
Crea el entorno virtual .venv |
| Activar Entorno | source .venv/bin/activate |
Activa el entorno virtual |
| Actualizar pip | python3 -m pip install --upgrade pip |
Actualiza el gestor de paquetes |
| Instalar Dependencias | pip install -r requirements.txt |
Instala las librerías del proyecto |
| Desactivar Entorno | deactivate |
Sale del entorno virtual |
-
Actualizar pip:
python3 -m pip install --upgrade pip
-
Actualizar
requirements.txt:pip freeze > requirements.txt
find . -type d -name "__pycache__" -exec rm -rf {} +Con el entorno virtual activado:
fastapi dev app/main.pyEl backend quedará disponible en:
- API: http://localhost:8000
- Documentación: http://localhost:8000/docs
El servicio se levanta usando el archivo docker-compose.yml del proyecto.
docker compose up -dLa bandera
-dejecuta los contenedores en segundo plano.
Verifica que esté activo:
docker psDeberías ver el contenedor cnt-apimopi.
| Comando | Descripción |
|---|---|
docker compose up -d |
Inicia los servicios en segundo plano |
docker compose down |
Detiene y elimina contenedores y redes |
docker compose restart |
Reinicia los servicios |
docker run -d --name cnt-apimopi -p 8080:80 iso-apimopi |
Crea y arranca el contenedor |
docker stop cnt-apimopi |
Detiene el contenedor |
docker start cnt-apimopi |
Inicia el contenedor detenido |
docker logs -f cnt-apimopi |
Logs en tiempo real |
docker rm cnt-apimopi |
Elimina el contenedor (debe estar detenido) |
docker build -t iso-apimopi . |
Construye la imagen del backend |
docker rmi iso-apimopi |
Elimina la imagen local |
docker ps -a |
Lista todos los contenedores |
Para procesar videos de YouTube:
- Crea el archivo
cookies.txtdentro deapp/ - Obtén las cookies desde tu navegador
Referencia oficial:
https://github.com/yt-dlp/yt-dlp/wiki/FAQ#how-do-i-pass-cookies-to-yt-dlp