PHP script to organize photos and videos into folders by date
It was inspired by Python script https://github.com/andrewning/sortphotos
Задача этого скрипта, скопировать фото из беспорядочной структуры в организованную структуру папок с разбиением по датам. Проблема: Я фотографирую на телефон и несколько фотоаппаратов. Иногда сохраняю присланные фото из сети. Веб камеры, экшн камеры, различные мессенджеры. Всё это создаёт цифровые фотографии, некоторые из которых мне хотелось бы сохранить в своём архиве. Когда все фото снимались одной камерой и их было немного, я вручную копировал их по папкам. Теперь это становится едва ли возможным. Одно и то же фото может быть несколько раз скопировано в разные папки, на разные устройства и сервисы, а иногда ещё и переименовано :(
На мой взгляд наиболее универсальным способом организовать упорядоченное хранение это создать папки с датами и распределить фото по ним. Из моего опыта - предпочтительный формат даты это ГОД-МЕСЯЦ-ДЕНЬ. Файлы, начинающиеся с даты в таком формате удобно сортируются. Например в структуре, которую я выбрал для себя, фото снятое сегодня будет храниться в папке 2018/2018-10-16/12345.jpg Часто я добавляю описание к папке, например 2017/2017-05-31 день рождения/12345.jpg Так удобно искать фото по описанию. Если фото делаются каждый день, можно дополнительно сделать папки по месяцам.
Данный скрипт копирует фото и видео из указанного источника, которым в большинстве случаев будет SD карта Вашего фотоаппарата в папку с архивом фотографий.
Функции скрипта:
- Определение даты фотографии или видео и копирование в соответствующую дате папку по заданному шаблону. Сначала пытаемся определить дату по EXIF, затем пытаемся её найти в имени файла, например IMG_20170505_1234.jpg или VID_2017_05_05_1234.mov. Если эти методы не работают, берём время создания файла. Опционально можно отключить копирование таких файлов, что бы потом скопировать их вручную.
- Проверка на существование дубликатов. Если фотография уже есть в Вашем архиве, она не будет копироваться. Опционально она будет так же удалена из источника. Проверка на полное совпадение файла (имя может отличаться).
- Вы можете указать расширения файлов, которые должны копироваться. Все остальные файлы останутся нетронутыми.
- Вы можете так-же указать расширения файлов, которые должны удаляться из папки источника. Это могут быть временные файлы и превьюшки, которые создаёт Ваша камера.
- Можно включить опцию удаления пустых папок на источнике. Таким образом ваша папка исходник будет полностью очищена после успешного копирования фото в архив.
Лично я придерживаюсь правила не переименовывать файлы, если они имеют оригинальное название данное им цифровой камерой. Это своего рода их идентификатор.
Для начала работы переименуйте config.ini.sample в config.ini и укажите там необходимые настройки.