Skip to main content

Eina per comparar, revisar i classificar fotografies i videos entre directoris.

Project description

SyncFotos

Aplicació en Python per sincronitzar, revisar i classificar fotografies i vídeos entre dos directoris.

L'objectiu és detectar els fitxers que existeixen al directori d'origen però no al de destinació i facilitar-ne la revisió abans de moure'ls a la ubicació definitiva.


Característiques

  • 📷 Visualització d'imatges.
  • 🎥 Reproducció de vídeos integrada amb VLC.
  • ⏯ Controls de reproducció (Play/Pausa i barra de progrés).
  • 🔍 Comparació entre dos directoris.
  • 📂 Detecció de fitxers inexistents al directori de destinació.
  • 📁 Moure fitxers a una carpeta seleccionada.
  • 📁 Moure fitxers a l'última carpeta utilitzada.
  • 📅 Moure fitxers automàticament segons la data deduïda del nom.
  • 🖼 Obrir una fotografia amb un editor extern.
  • 💬 Tooltips amb informació sobre el directori de destinació.

Organització automàtica per data

Si el fitxer té un nom com:

PXL_20251129_080003803.TS.mp4

SyncFotos detecta la data (2025-11-29) i proposa moure'l a:

2025/
└── 2025_11_29/

Si el nom del fitxer no conté una data reconeguda, aquesta opció no es mostra.


Requisits

  • Python 3.11 o superior
  • VLC Media Player instal·lat

Llibreries Python:

pip install pillow python-vlc opencv-python

Execució

python sync_fotos.py

Per veure totes les opcions disponibles:

python sync_fotos.py --help

També es pot executar com a paquet (un cop instal.lat):

sync-fotos --help
sync-fotos-gui
sync-fotos-duplicats
sync-fotos-fitxers-buits "D:\\Fotos"

Empaquetat i distribució

Construcció local del paquet:

python -m pip install --upgrade build
python -m build

Es generen dos artefactes a dist/:

  • syncfotos-<versio>.tar.gz
  • syncfotos-<versio>-py3-none-any.whl

Instal.lació local de prova:

python -m pip install dist/syncfotos-*.whl

Publicació amb GitHub Actions

El workflow Build and Publish fa:

  1. Build de wheel + sdist.
  2. Publicació d'artefactes del build.
  3. Publicació a PyPI quan fas push d'un tag v* (per exemple v1.0.0).

Passos per activar-ho:

  1. A pyproject.toml, canvia els URLs OWNER/REPO pel teu repositori real.
  2. A PyPI, crea el projecte syncfotos (o canvia el nom a pyproject.toml si ja existeix).
  3. Configura Trusted Publishing de PyPI per aquest repositori GitHub.
  4. Fes commit i push.
  5. Crea un tag de release:
git tag v1.0.0
git push origin v1.0.0

Flux de treball

  1. Compara el directori origen amb el directori destinació.
  2. Detecta els fitxers que falten.
  3. Mostra cada fitxer (foto o vídeo).
  4. L'usuari pot:
  • Moure'l a una carpeta.
  • Moure'l a l'última carpeta utilitzada.
  • Moure'l segons la data del nom.
  • Obrir-lo amb un editor.
  • Saltar-lo.
  1. En finalitzar es mostra un resum de les accions realitzades.

Llibreries utilitzades

  • argparse
  • pathlib
  • shutil
  • tkinter
  • Pillow
  • python-vlc
  • OpenCV
  • datetime
  • re

Estructura del projecte

syncFotos/
│
├── sync_fotos.py
├── README.md
├── .gitignore
├── cache/
└── ...

Funcionalitats previstes

  • Configuració persistent.
  • Selecció de l'editor d'imatges des de la interfície.
  • Dreceres de teclat.
  • Millorar la reproducció de vídeos.
  • Suport per a més formats de noms de fitxer.
  • Generació d'un executable per a Windows.

Captura de pantalla

Es recomana afegir una o més captures de la interfície aquí.

![Captura principal](docs/screenshot.png)

Llicència

Aquest projecte es distribueix sota la llicència MIT.


Autor

Desenvolupat com a eina personal per facilitar l'organització de fotografies i vídeos.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

syncfotos-1.0.0.tar.gz (23.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

syncfotos-1.0.0-py3-none-any.whl (26.6 kB view details)

Uploaded Python 3

File details

Details for the file syncfotos-1.0.0.tar.gz.

File metadata

  • Download URL: syncfotos-1.0.0.tar.gz
  • Upload date:
  • Size: 23.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for syncfotos-1.0.0.tar.gz
Algorithm Hash digest
SHA256 d219dfd4f257112358973d1ec557abd7610f5897db030a9afb9cbf3b37d4595f
MD5 cf8fa569c25668bf44db256f35a916a5
BLAKE2b-256 e27624546948b0954ea6586d3de63c34b2a96906cbbbb0eba7e3d04c6cc7783b

See more details on using hashes here.

Provenance

The following attestation bundles were made for syncfotos-1.0.0.tar.gz:

Publisher: release.yml on AureliRoura/syncFotos

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file syncfotos-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: syncfotos-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 26.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for syncfotos-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8cddbcd99dbbabff3abf567301e8a0bb2a56b98d66ed217076f9571d290cd3c8
MD5 d8eefd334bfa3391f8d805a2556577e5
BLAKE2b-256 e2a708f2b01b3649e07310376a31a19d32b01d26ae2bc5ff880c3b0276e7bfb1

See more details on using hashes here.

Provenance

The following attestation bundles were made for syncfotos-1.0.0-py3-none-any.whl:

Publisher: release.yml on AureliRoura/syncFotos

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page