Motor de limpieza de metadatos personales para proteger tu soberanía digital.
Este motor elimina datos personales identificables:
- ✅ Elimina: Author, Creator, Title, Company (datos que identifican personas)
- ✅ Preserva: Producer, versiones, timestamps (datos técnicos irrelevantes)
- ✅ Documentos 100% funcionales
- ✅ Sin pérdida de datos ni fórmulas
| Categoría | Extensiones | Método |
|---|---|---|
| PDFs | Ghostscript + blank_info.ps | |
| Office | docx, pptx, xlsx, odt, ods, odp | Cirugía XML (sed) |
| Office con macros | docm, pptm, xlsm, xlsb | Cirugía XML (preserva macros) |
| Imágenes | jpg, jpeg, png, tif, tiff, bmp, gif, webp, heic | exiftool -all= |
| Audio | mp3, m4a, flac, wav, aac, ogg, wma, aiff | exiftool / ffmpeg remux |
| Video | mp4, mov, avi, mkv, wmv, flv, webm, m4v | exiftool / ffmpeg remux |
docProps/core.xml:
- dc:creator (Autor)
- cp:lastModifiedBy (Último en modificar)
- dc:title (Título)
- dc:subject (Asunto)
- dc:description (Descripción)
- cp:keywords (Palabras clave)
- cp:category (Categoría)
docProps/app.xml:
- Application (Microsoft Excel, etc.)
- Company (Nombre de empresa)
- Manager (Nombre del manager)
docProps/custom.xml: (Propiedades personalizadas - eliminado completo)
- Author, Creator, Producer, Title, Subject, Keywords
- XMP metadata completo
- Archivo REGENERADO desde cero con Ghostscript
- NOTA: exiftool -all= NO funciona en PDFs (los datos siguen presentes)
# Dependencias OBLIGATORIAS
brew install exiftool qpdf ghostscript
# Opcional (para audio/video)
brew install ffmpeg
# Permisos
chmod +x scripts/cleaner.sh scripts/verify.sh cleaner.command# Limpieza estándar
bash scripts/cleaner.sh "/ruta/a/carpeta"
# Ver qué haría sin modificar
bash scripts/cleaner.sh "/ruta/a/carpeta" --dry-run
# PDF con Ghostscript (regeneración completa)
bash scripts/cleaner.sh "/ruta/a/carpeta" --deep-pdfDoble clic en cleaner.command y arrastra la carpeta.
bash scripts/verify.sh "/carpeta/output"Editar config/settings.env:
# Modo de operación
MODE="copy" # copy = seguro, inplace = modifica originales
# Nivel limpieza PDF
PDF_CLEAN_LEVEL="standard" # standard | deep
# Política de macros
MACRO_POLICY="clean" # clean | skip | stripmetadata-cleaner/
├── scripts/
│ ├── cleaner.sh # Script principal
│ ├── verify.sh # Verificación post-limpieza
│ └── lib/
│ ├── common.sh # Funciones comunes
│ ├── handlers_office.sh # Cirugía XML (método quirúrgico)
│ ├── handlers_pdf.sh # exiftool + qpdf
│ ├── handlers_images.sh # exiftool
│ └── handlers_media.sh # exiftool / ffmpeg
├── config/
│ └── settings.env # Configuración
├── cleaner.command # Drag & Drop launcher
├── logs/ # Logs CSV
└── output/ # Archivos limpios
| Acción | ¿Modifica metadata? |
|---|---|
| Descomprimir ZIP | ❌ NO |
| Mover/Copiar archivos | ❌ NO |
| Abrir y ver sin guardar | ❌ NO |
| Editar + Guardar | ✅ SÍ |
1. Descomprimir ✅ SEGURO
2. Abrir archivos ✅ SEGURO (solo lectura)
3. Si necesita editar → configurar nombre de usuario genérico en Office
- Warning de Excel: Algunos archivos pueden mostrar "Errors were detected". Esto es cosmético — Excel repara automáticamente y los datos están intactos.
- TitlesOfParts: Los nombres de hojas de Excel NO son metadata personal, se preservan.
- Producer en PDF: Software que generó el PDF (ej: "3-Heights PDF Tools") se preserva si no hay forma de eliminarlo sin regenerar completamente.
Versión 2.0 - Método de precisión quirúrgica para soberanía digital