Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ForMyPhoto

一款简易的照片和视频管理工具,用于扫描指定目录下的媒体文件,提取相关信息并存储到数据库中,以便后续查询和管理。

当前功能

  • 多文件夹路径配置和管理
  • 递归扫描所有配置的路径
  • 常见图片视频格式元数据提取
  • 哈希值计算
  • 按条件搜索
  • 列出重复文件
  • 查询统计信息

运行

系统要求

  • Python 3.6+
  • FFmpeg (用于视频元数据提取)

安装步骤

  1. 克隆或下载本仓库
git clone https://github.com/yourusername/formyphoto.git
cd formyphoto
  1. 安装依赖包
pip install -r requirements.txt
  1. 安装FFmpeg (如果尚未安装)
  • Ubuntu/Debian: sudo apt install ffmpeg
  • macOS (使用Homebrew): brew install ffmpeg
  • Windows: 从FFmpeg官网下载并添加到PATH

使用方法

配置

首次运行前,需要配置要扫描的路径:

# 添加扫描路径
python formyphoto.py config add /path/to/your/photos

# 查看已配置的路径
python formyphoto.py config list

# 移除路径
python formyphoto.py config remove /path/to/your/photos

# 显示完整配置
python formyphoto.py config show

扫描文件

# 扫描所有配置的路径
python formyphoto.py scan

# 只扫描新文件
python formyphoto.py scan --only-new

# 强制重新扫描所有文件
python formyphoto.py scan --force

# 扫描特定路径
python formyphoto.py scan --path /path/to/scan

验证数据库文件

# 检查并列出不存在的文件(默认操作)
python formyphoto.py verify
python formyphoto.py verify --operation=list

# 检查并删除不存在文件的数据库记录
python formyphoto.py verify --operation=delete

# 导出不存在文件的记录到CSV(可与任何操作组合)
python formyphoto.py verify --export=missing_files.csv
python formyphoto.py verify --operation=delete --export=deleted_files.csv

# 只验证特定类型的文件(可与任何操作和导出选项组合)
python formyphoto.py verify --type=image
python formyphoto.py verify --operation=delete --type=video
python formyphoto.py verify --type=image --export=missing_images.csv

搜索文件

# 按文件名关键词搜索
python formyphoto.py search "关键词"

# 按文件类型搜索
python formyphoto.py search --type image
python formyphoto.py search --type video

# 按日期搜索
python formyphoto.py search --date 2023-01-01

# 按设备搜索
python formyphoto.py search --device "iPhone"

# 按分辨率搜索
python formyphoto.py search --resolution 1920x1080

查找重复文件

# 列出所有重复文件
python formyphoto.py duplicates list

统计信息

# 显示基本统计信息
python formyphoto.py stats

# 按设备统计
python formyphoto.py stats --by-device

数据库管理

# 初始化数据库
python formyphoto.py db init

# 显示数据库统计信息
python formyphoto.py db stats

# 压缩数据库
python formyphoto.py db vacuum

# 查看数据库版本
python formyphoto.py db version

支持的文件格式

图片格式

  • 常见图片格式: jpg/jpeg, png, gif, bmp, tiff/tif, webp, heic/heif
  • 相机RAW格式: cr2 (Canon), nef (Nikon), arw (Sony), orf (Olympus), raf (Fujifilm), rw2 (Panasonic), dng (通用)
  • 其他格式: psd (Photoshop)

视频格式

  • 常见视频格式: mp4, mkv, avi, mov, wmv, flv, webm, m4v, mpg/mpeg, 3gp

配置文件

项目中提供了一个示例配置文件 config.example.json,您应该基于此创建自己的 config.json

# 复制示例配置文件
cp config.example.json config.json

# 编辑配置文件,添加您自己的路径
vim config.json  # 或使用其他编辑器

配置文件结构如下:

{
  "scan_paths": [
    "/path/to/photos",
    "/path/to/videos"
  ],
  "database": {
    "path": "./formyphoto.db"
  },
  "file_types": {
    "images": [
      "jpg", "jpeg", "png", "gif", "bmp", "tiff", "tif", "webp", "heic", 
      "cr2", "nef", "arw", "orf", "raf", "rw2", "dng", "psd"
    ],
    "videos": [
      "mp4", "mkv", "avi", "mov", "wmv", "flv", "webm", "m4v", "mpg", "mpeg", "3gp"
    ]
  },
  "scan_settings": {
    "hash_algorithm": "sha256",
    "extract_metadata": true,
    "recursive": true
  }
}

您也可以通过命令行修改配置:

# 添加扫描路径
python formyphoto.py config add /path/to/your/photos

# 查看已配置的路径
python formyphoto.py config list

# 移除路径
python formyphoto.py config remove /path/to/your/photos

# 显示完整配置
python formyphoto.py config show

日志

日志文件保存在 logs 目录下,可以通过 --verbose-v 选项启用详细日志。

未来目标

  • 基于时间的分组导出

  • 基于地理位置的分组导出

  • 基于搜索结果的分组导出

  • 高级搜索

  • 重复照片去重策略

  • 相似照片筛选

  • 人脸识别和分组

About

A lightweight photo and video management tool for scanning and organizing.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages