All Projects → gerdemb → shashin

gerdemb / shashin

Licence: MIT license
Shashin is a command-line based photo library management system

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to shashin

nano photos provider2
PHP photos provider for nanogallery2
Stars: ✭ 37 (+42.31%)
Mutual labels:  photos
muzei-nationalgeographic
The National Geographic photo of the day for Muzei.
Stars: ✭ 29 (+11.54%)
Mutual labels:  photos
FaceAware-Android
this helps to auto zoom for face on ImageView
Stars: ✭ 46 (+76.92%)
Mutual labels:  photos
PhotoMiner
Photo finder application for macOS
Stars: ✭ 102 (+292.31%)
Mutual labels:  photos
go-unsplash
Go Client for the Unsplash API
Stars: ✭ 70 (+169.23%)
Mutual labels:  photos
ImageUI
A photo browser inspired by Apple Photos app
Stars: ✭ 44 (+69.23%)
Mutual labels:  photos
Selfhosted-Google-Photos-Alternative
A complete guide on exiting Google, Amazon or any proprietary service Photos storage with all the features you would want.
Stars: ✭ 143 (+450%)
Mutual labels:  photos
flickr scraper
Simple Flickr Image Scraper
Stars: ✭ 148 (+469.23%)
Mutual labels:  photos
facebook-data-image-exif
UI tool to add EXIF data back to images in a Facebook data export
Stars: ✭ 39 (+50%)
Mutual labels:  photos
timeline
Timeline - A photo organizer
Stars: ✭ 39 (+50%)
Mutual labels:  photos
PhotoMP
The AppImage version of GIMP for those who come from Photoshop.
Stars: ✭ 68 (+161.54%)
Mutual labels:  photos
web-photo-filter
A Web Component to apply Instagram-like WebGL filters to photos
Stars: ✭ 105 (+303.85%)
Mutual labels:  photos
exiftool-json-db
Maintain a JSON database of photos and videos with their metadata
Stars: ✭ 18 (-30.77%)
Mutual labels:  photos
fashion dataset
Fashionista Dataset for training machine learning models
Stars: ✭ 69 (+165.38%)
Mutual labels:  photos
Chafu
A photo browser and camera library for Xamarin.iOS
Stars: ✭ 36 (+38.46%)
Mutual labels:  photos
pyscrapers
Scrapers for vk, facebook, instagram and more
Stars: ✭ 18 (-30.77%)
Mutual labels:  photos
UserAvatar
选择系统相机拍照和系统相册图片设置头像,包括Android7.0图片的选取
Stars: ✭ 32 (+23.08%)
Mutual labels:  photos
fotowall
Pictures collage & creativity tool
Stars: ✭ 92 (+253.85%)
Mutual labels:  photos
jiotty-photos-uploader
Uploads your media files to Google Photos creating albums based on the directory structure
Stars: ✭ 54 (+107.69%)
Mutual labels:  photos
ArchiverForGooglePhotos
A tool to maintain an archive/mirror of your Google Photos library for backup purposes.
Stars: ✭ 104 (+300%)
Mutual labels:  photos

shashin

Features

  • Find duplicate images using perceptual hashing which can match similar images even if they have been resized, edited or had changes to their metadata (EXIF) tags, etc.
  • Web interface for browsing images and deleting duplicates
  • Machine learning analyzes the metadata of images you delete and suggests which images to delete
  • Rapid rescanning of directories for new or changed files using database cache
  • Images are not modified in any way
  • Light weight Python code that can run on low-powered NAS devices

Required External Libraries

It may be necessary to set environment variables for the Wand to find the ImageMagick libraries.

export MAGICK_HOME=/
export WAND_MAGICK_LIBRARY_SUFFIX="-6.Q8"

Quick Start

    git checkout https://github.com/gerdemb/shashin.git
    cd shashin 
    pip -r requirements.txt
    ./shashin.py scan dir1 dir2
    ./shashin.py browse

Open http://localhost:8000/

Other Commands

Commands for organizing images into YYYY/MM/DD folders. src directory will be scanned recursively and files copied or moved into dest/YYYY/MM/DD directories based in DateTimeOriginal tag or FileModifyDate if DateTimeOriginal tag does not exist. The organize command will move the files in the destination in place. Use --dry-run option to test file actions.

./shashin.py cp src dest/
./shashin.py mv src dest/
./shashin.py organize dest/

Security

The web interface should be served for local browsers only. There is no security and any external user could view or delete images. Additionally the complete path location of each image (ie. /Users/admin/photos/album/img_1.jpg) is exposed to the browser.

Architecture

On scan, the dhash of each file is calculated and stored in an sqlite3 database. This database is used to detect identical files and similar images. By default, it is stored in ~/.cache/shashin/shashin.sqlite3

Machine Learning

In the web interface, a group of duplicated images is ordered so that the FIRST image is the one predicted to be kept and the following images are to be deleted. The prediction is made by building a machine learning model comparing the metadata of images that were deleted with images that were kept. A new model is built every time the browse command is started.

TODO

  • Handle videos
  • Allow customization of YYYY/MM/DD hierarchy
  • Allow renaming of files
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].