Categoría: Proyectos y aplicaciones

Contenido relacionado con proyectos y aplicaciones.

  • Nueva versión del multi_downloader publicada (v0.3).

    Buenas tardes a todos. Ya ha pasado bastante tiempo desde la última vez, pero aquí estamos de nuevo con buenas noticias.Ya está publicada la v0.3 del proyecto en GitHub.
    Sigue siendo una versión en evolución, así que todavía puede contener errores o comportamientos inesperados. Gracias de antemano por la paciencia y por el feedback. 🙂

    Características de la v0.3

    En esta versión se han incluido mejoras de estabilidad, experiencia de uso y pruebas automáticas:

    • Respuestas de confirmación más flexibles en toda la app:
      • Ahora se aceptan tanto y/n como yes/no en Instagram, Twitter/X y YouTube.
    • Mejora del flujo de Instagram:
      • Extracción de shortcode más robusta para enlaces tipo postreel y tv.
      • Compatibilidad mejorada con URLs que incluyen parámetros (por ejemplo utm_*).
    • Mejor manejo de errores 403 en Instagram:
      • Mensajes más claros cuando Instagram bloquea temporalmente consultas de metadatos (graphql/query).
      • Se explica mejor cuándo es un bloqueo temporal/rate-limit y qué hacer.
    • Calidad de proyecto:
      • Se ajustó la configuración de pytest para que la suite de tests funcione de forma consistente desde la raíz del proyecto.
      • Se ampliaron pruebas unitarias para cubrir los nuevos casos (yes/no y parseo de shortcode con query params).
      • Documentación de troubleshooting actualizada en README.

    Estado actual de Instagram

    Por ahora, la descarga sigue enfocada en contenido accesible públicamente y puede verse afectada por restricciones temporales del lado de Instagram (como los 403 intermitentes).
    A futuro, se evaluará integración con sesión autenticada para mejorar fiabilidad, siempre priorizando seguridad.

    Flujo de funcionamiento (actualizado)

    1. Introducción del enlace.
    2. Validación del enlace y obtención del recurso.
    3. Selección del directorio de destino (si se deja vacío, usa Usuario/Descargas).
    4. Selección del nombre del archivo (si se deja vacío, se usa nombre por defecto según plataforma, por ejemplo shortcode en Instagram).
    5. Confirmaciones interactivas compatibles con y/n y yes/no.

    Como siempre, aquí tenéis el repositorio para revisar los cambios a nivel de código.

    Próximas ideas

    La terminal está chula y te da puntos, pero para ser sinceros, si no sabes usarla, es un coñazo. De aquí en no sé cuanto (xD) habrá una nueva actualización que incluya una UI, es decir, una interfaz gráfica. Pero «no preocuparse», la interfaz a través de la CLI seguirá funcionando.

    Si alguien quiere colaborar en el proyecto programando, probando el código y reportando los posibles fallos o sugiriendo futuras características, estaré encantado de recibir la ayuda. Solo debes ponerte en contacto conmigo a través de mis redes sociales, publicando algo en el repositorio o a través de email a la dirección [email protected].

    Muchas gracias y hasta la próxima, ¡73s de Juanchi EA1FSC!

  • BentoPDF: la herramienta definitiva para PDF

    BentoPDF: la herramienta definitiva para PDF

    Los PDF (Portable Document Format) se utilizan a día de hoy para todo y a veces necesitamos realizar alguna modificación en ellos, convertirlos a otro formato de archivo, combinarlos…
    Sin embargo, es difícil encontrar herramientas que se ajusten a nuestras necesidades y que funcionen correctamente (sin pagar un dineral en licencias —cof, cof, Adobe—). Si a esto le sumamos que Windows no sea tu sistema operativo principal, la cosa se pone aún más complicada.

    En este contexto aparece BentoPDF y lo revoluciona absolutamente todo.

    ¿Qué es BentoPDF?

    BentoPDF es un conjunto de herramientas de manipulación de PDF que opera completamente en el cliente (es decir, en tu navegador) sin necesidad de subir los archivos a un servidor.

    El proyecto se autodefine como un “privacy-first PDF toolkit” (herramienta de PDF con privacidad como pilar) precisamente porque el archivo nunca abandona tu dispositivo, eliminando riesgos asociados al uso de servicios remotos.

    Fue publicado bajo licencia AGPL-3.0 (después de haber sido originalmente Apache 2.0) para proteger la naturaleza libre del proyecto frente a usos que cierren código.

    La comunidad ya lo valora como una alternativa muy interesante frente a otros editores de PDF autohospedados (por ejemplo, frente a Stirling PDF).

    Finalmente, justo la publicación del paso a versión 1.0.0 fue recogida en medios como Heise, destacando cómo BentoPDF incorpora funciones avanzadas como “posterize” (para dividir un PDF en varias páginas para impresión en póster) o “linearize” (optimización para visualización progresiva por web), mejoras en OCR y operaciones por lotes.

    ¿Qué herramientas incluye BentoPDF?

    A continuación te dejo una explicación de algunas de sus funciones más importantes, así como otras muchas otras que pueden ser de utilidad:

    Nombre de la herramientaQué hace / para qué sirveDetalles notables / límites
    Merge PDFs (Combinar PDFs)Permite unir varios documentos PDF en uno solo.Básico, pero muy frecuentemente usado.
    Split PDFs (Dividir PDFs)Separar un PDF en varios archivos (por página, por rangos).Útil para extraer partes específicas de un documento.
    Organize Pages / Reorder / Delete / DuplicateReordenar páginas dentro de un PDF, duplicarlas o eliminarlas.Interfaz visual de arrastrar y soltar facilita esto.
    Extract PagesExtraer uno o varios rangos como nuevo documento PDF.Se diferencia del split en que permite escoger rangos sin fragmentar todo.
    Rotate PDFGirar páginas individuales o todas (por ejemplo, 90°, 180°).Funcionalidad clásica muy útil cuando algunas páginas están escaneadas “al revés”.
    Alternate & Mix / Interleave MergeFusionar dos (o más) PDFs intercalando páginas (una de A, otra de B, etc.).Muy útil para combinar caras y dorsos, o documentos escaneados por separado.
    Posterize PDFDividir un PDF grande en múltiples páginas más pequeñas (por ejemplo, para impresión tipo póster).Este es uno de los añadidos destacados de la versión 1.0.0.
    Compress PDFReducir el tamaño del archivo según calidad / compresión.Fundamental para compartir documentos pesados.
    OCR (Optical Character Recognition)Convertir páginas escaneadas en texto seleccionable / buscable.Mejorado para reconocer caracteres más precisamente con whitelist.
    Linearize (Fast Web View / Optimize para web)Optimizar el PDF para que cargue de forma progresiva al visualizarlo en web.Muy útil cuando el PDF va a publicarse en línea.
    Remove Blank PagesDetectar y eliminar automáticamente páginas que estén en blanco.estén en blanco.
    Una operación de limpieza muy práctica.
    Encrypt / Decrypt / Change PermissionsProteger el PDF con contraseña, eliminar protección, establecer permisos de impresión/copia/edición.Para gestión de seguridad de documentos.
    Redact ContentEliminar de forma permanente contenido sensible (texto, imágenes) del PDF.Importante en documentos legales o privados.
    Add Watermark / Header & Footer / Page NumbersInsertar marcas de agua (texto o imagen), encabezados, pies o numeración personalizada.Herramientas de presentación / personalización típicas para documentos corporativos.
    Edit Metadata / Remove MetadataModificar atributos del PDF (autor, título, palabras clave) o eliminar todos los metadatos.Para privacidad o limpieza de documentos antiguos.
    PDF → Imagen / Imagen → PDFConvertir páginas del PDF a formatos de imagen (JPG, PNG, WebP, etc.), y también transformar imágenes (JPG, PNG, WebP, SVG, TIFF, BMP, HEIC) en PDF.Facilita interoperabilidad entre formatos visuales y documentos.
    PDF → Greyscale
    Convertir un PDF a escala de grises (blanco-negro).
    Útil para versiones de impresión en blanco y negro.
    Flatten PDF / Remove Annotations“Aplanar” campos de formulario o anotaciones para que se vuelvan parte fija del documento, eliminar comentarios, resaltados, etc.Útil para asegurar que los destinatarios no puedan modificar anotaciones.
    Sanitize PDFEliminar contenido potencialmente malicioso del PDF, limpiar estructuras sospechosas.Seguridad adicional frente a PDFs que pudieran ocultar código o elementos dañinos.
    Add AttachmentsAdjuntar otros archivos dentro del PDF (por ejemplo, incluir documentos auxiliares).Función incorporada en la versión 1.0.0 como destacado

    ¿Cómo utilizo BentoPDF?

    Como se indicaba antes, BentoPDF es una aplicación a nivel de cliente, por lo que todo ocurre a nivel de navegador, pero para poder acceder, hay que hacerlo a través del mismo.

    Para ello existen dos opciones principales:

    • Self-Hosted manual: en el repositorio de GitHub encontramos los comandos necesarios para tener esta aplicación en nuestro ordenador y lanzarla cada vez que queramos. Muy útil si queremos acceder a ella sin conexión a internet (la aplicación está alojada en nuestro propio dispositivo, por lo que no necesitamos conexión a internet para acceder a ella). Docker debe estar instalado en nuestro dispositivo.
    • Self-Hosted en nuestro Homelab: si disponemos de un HomeLab (ya sea con Proxmox, CasaOS o cualquier otra tecnología) podemos alojar la aplicación igual que en el caso manual, pero de esta manera siempre estará disponible a través de internet para no tener que desplegarla cada vez que queramos utilizarla. Este método también requiere tener Docker instalado en nuestro laboratorio (que presupongo que ya tienes), y no es tan útil en caso que de no estemos conectados a internet.

    Como siempre, elige el método que más te guste y te sea más cómodo. Si quieres probar la aplicación sin tener que desplegarla, puedes utilizar mi instancia. Por supuesto, es completamente gratis, puedes usarla tantas veces como quieras y como la propia aplicación indica, no se guarda nada en el servidor (además de que no recopilo ningún tipo de dirección IP o datos cuando accedes a mis sitios).

    Conclusión

    BentoPDF representa un movimiento interesante hacia la descentralización del procesamiento de documentos: no dependes de servicios externos, no comprometes tu privacidad, y al mismo tiempo te da una suite potente para trabajar con documentos PDF complejos. En un mundo donde los servicios en línea proliferan —a veces con consecuencias en la privacidad— herramientas como BentoPDF son como un antídoto: recuperas el control.

    No es perfecta (ninguna herramienta lo es), pero su diseño libre, su arquitectura moderna y su enfoque centrado en el usuario le dan una posición fuerte en el ecosistema. Con el apoyo de la comunidad y si se pulen los casos límite, podría ser la herramienta de referencia en edición de PDF local y segura.

    Si quieres más información, puedes consultar su repositorio oficial en GitHub, así como encontrarás más información en la pestaña «About» de la aplicación.

    Como siempre, muchas gracias por haber leído este artículo hasta el final. Cualquier comentario, corrección o aportación es más que bienvenida. ¡Muchas gracias y 73s!

  • Nueva versión del multi_downloader publicada (v0.2).

    Buenas tardes a todos. Me agrada anunciar que se ha publicado una nueva versión del proyecto en el repositorio de GitHub. Cabe destacar que esta sigue siendo una versión preliminar y puede contener varios errores o bugs. Pido disculpas de antemano. 🙂

    Características de la v0.2

    Se ha implementado el «downloader» para Instagram, permitiendo:

    • Descarga de fotos (desde un post).
    • Descarga de vídeos (desde un post).
    • Descarga de reels.

    Es importante mencionar que, por ahora, esta funcionalidad solo está disponible para cuentas públicas. Esto significa que si intentamos descargar contenido de una cuenta privada, la versión actual no lo permitirá. Sin embargo, la biblioteca utilizada (instaloader) permite iniciar sesión en Instagram, lo que facilitará el acceso a elementos de cuentas no públicas que sigamos.

    Esta característica se implementará en el futuro, pero primero debo asegurarme de que sea segura (no quisiera exponer cuentas ajenas xD).

    Proceso de funcionamiento

    1. Introducción del enlace a descargar.
    2. Obtención del elemento.
    3. Selección del directorio de destino donde se guardará el archivo (si no se especifica, se utilizará el directorio Usuario/Descargas).
    4. Elección del nombre del archivo (si no se proporciona uno, se usará el identificador del elemento en Instagram, conocido como shortcode).

    Como siempre, aquí tenéis el enlace al repositorio si queréis revisar los cambios realizados a nivel de código.

    Si alguien quiere colaborar en el proyecto programando, probando el código y reportando los posibles fallos o sugiriendo futuras características, estaré encantado de recibir la ayuda. Solo debes ponerte en contacto conmigo a través de mis redes sociales, publicando algo en el repositorio o a través de email a la dirección [email protected].

    Muchas gracias y hasta la próxima, ¡73s de Juanchi EA1FSC!

  • ¡Primera versión del multi_downloader publicada (v0.1)!

    Descripción del proyecto

    Como aparece en Proyectos y aplicaciones, el «Multi Downloader» es un programa en Python que permite la descarga de archivos desde múltiples fuentes: YouTube, Instagram, X (antes Twitter) y demás.

    Está integrado en Python (de momento en la versión 3.12.4), por lo que en principio es ejecutable en cualquier tipo de SO (Windows, MacOS o Linux).

    Características de la v0.1

    En esta primera versión publicada, ya se puede descargar desde YouTube en tres formatos distintos:

    • Vídeo (sin audio asociado) en varios formatos.
    • Audio en varios formatos.
    • Vídeo + audio (en formato mp4 o webm).

    ¿Por qué esta diferencia de formatos? YouTube funciona con el llamado DASH (Dynamic Adaptive Streaming over HTTPS) o en español, Streaming Adaptativo Dinámico sobre HTTPS. Esto significa que YouTube tiene almacenados varios archivos (o streams) del mismo elemento tanto de audio como de vídeo, y puede combinarlos en función de la conexión de Internet del usuario, ofreciendo así siempre la mejor fluided a la hora de ver vídeos en la plataforma.

    Sin embargo, YouTube sí que tiene algunos archivos donde el vídeo y el audio están juntos, es el llamado progressive stream.

    Esta primera parte del programa permite la descarga de los vídeos de YouTube en los siguientes formatos mediante los siguientes pasos:

    1. Introducción del enlace y búsqueda del elemento.
    2. Muestra de los datos para confirmar que el URL introducido es el deseado.
    3. Elección del tipo de elemento que quiere descargarse (vídeo, audio o vídeo + audio)
    4. Elección del stream deseado para descargar.
    5. Selección de la ubicación de descarga (por defecto, la carpeta ‘Descargas’ del dispositivo).
    6. Selección del nombre del archivo (por defecto, el título del vídeo’).

    Este «youtube_downloader» está basado en la librería pytube (https://pytube.io/en/latest/), aunque debido a un error en la última versión de dicha librería que impide la descarga se está utilizando pytubefix (https://pytubefix.readthedocs.io/en/latest/) hasta que la original vuelva a funcionar.

    El código de la aplicación está disponible en GitHub.

    Si alguien quiere colaborar en el proyecto programando, probando el código y reportando los posibles fallos o sugiriendo futuras características, estaré encantado de recibir la ayuda. Solo debes ponerte en contacto conmigo a través de mis redes sociales, publicando algo en el repositorio o a través de email a la dirección [email protected].

    Muchas gracias y hasta la próxima, ¡73s de Juanchi EA1FSC!