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.gzsyncfotos-<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:
- Build de wheel + sdist.
- Publicació d'artefactes del build.
- Publicació a PyPI quan fas push d'un tag
v*(per exemplev1.0.0).
Passos per activar-ho:
- A
pyproject.toml, canvia els URLsOWNER/REPOpel teu repositori real. - A PyPI, crea el projecte
syncfotos(o canvia el nom apyproject.tomlsi ja existeix). - Configura Trusted Publishing de PyPI per aquest repositori GitHub.
- Fes commit i push.
- Crea un tag de release:
git tag v1.0.0
git push origin v1.0.0
Flux de treball
- Compara el directori origen amb el directori destinació.
- Detecta els fitxers que falten.
- Mostra cada fitxer (foto o vídeo).
- 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.
- 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í.

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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file syncfotos-0.1.10.tar.gz.
File metadata
- Download URL: syncfotos-0.1.10.tar.gz
- Upload date:
- Size: 27.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e786a03c73562fb32170246ff71d36e968a33fc54c7daec624471bb27a38136b
|
|
| MD5 |
f7dec173e73086bf0651bcc8d6a1a1fd
|
|
| BLAKE2b-256 |
016356e89e35942995b634606ddeb551b60d4167772212866cef245377bc2417
|
Provenance
The following attestation bundles were made for syncfotos-0.1.10.tar.gz:
Publisher:
release.yml on AureliRoura/syncFotos
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
syncfotos-0.1.10.tar.gz -
Subject digest:
e786a03c73562fb32170246ff71d36e968a33fc54c7daec624471bb27a38136b - Sigstore transparency entry: 2203621637
- Sigstore integration time:
-
Permalink:
AureliRoura/syncFotos@f94d3d3a050603b727d5e7852c91af15ebb537e3 -
Branch / Tag:
refs/tags/v0.1.10 - Owner: https://github.com/AureliRoura
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f94d3d3a050603b727d5e7852c91af15ebb537e3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file syncfotos-0.1.10-py3-none-any.whl.
File metadata
- Download URL: syncfotos-0.1.10-py3-none-any.whl
- Upload date:
- Size: 28.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c062a65f22b71bd52ad5b0221be570d1a4478aba5c5f0ce89d22cb3d85949baf
|
|
| MD5 |
30ac23316ab0f1d980145a2a0c0e8528
|
|
| BLAKE2b-256 |
f51b7c44377cf0f60a9f201f73779b4dfa108d797d4bea37903c049e7a28dbe7
|
Provenance
The following attestation bundles were made for syncfotos-0.1.10-py3-none-any.whl:
Publisher:
release.yml on AureliRoura/syncFotos
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
syncfotos-0.1.10-py3-none-any.whl -
Subject digest:
c062a65f22b71bd52ad5b0221be570d1a4478aba5c5f0ce89d22cb3d85949baf - Sigstore transparency entry: 2203621753
- Sigstore integration time:
-
Permalink:
AureliRoura/syncFotos@f94d3d3a050603b727d5e7852c91af15ebb537e3 -
Branch / Tag:
refs/tags/v0.1.10 - Owner: https://github.com/AureliRoura
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f94d3d3a050603b727d5e7852c91af15ebb537e3 -
Trigger Event:
push
-
Statement type: