Site icon Блог Travelpayouts

Как блогеру хранить и сортировать фотографии из путешествий, чтобы легко находить нужные

Как тревел-блогеру хранить фотографии из путешествий, чтобы легко находить нужные

Как по мне, именно для туристического путеводителя фотографии — это вторая по значимости вещь. Сразу после хостинга. Но у меня довольно странные взгляды на SEO и продвижение сайтов. Если кому интересно — пишите в комментариях. Наберётся много народу? Тогда таки напишу эту статью. А пока лень. Она предполагается слишком уж огромной.

Как я раньше хранил фотографии?

Исторически так сложилось, что я сортировал фотографии по такому принципу:

  1. Есть папки, где все снимки «разложены» по странам.
  2. Внутри папки «по годам».
  3. Дальше по городам/экскурсиям/достопримечательностям/темам.

Проблема в том, что фото какого-то храма могут находиться в десятке разных папок: когда сами приезжали (в разные годы), когда гулял по городу с разными гидами, когда друзья или знакомые прислали мне свои фото из путешествия и ещё 100500 «когда».

Часто я уверен, что все подходящие снимки уже «использованы» даже тогда, когда у меня их несколько сотен. Просто я успешно забыл посмотреть ещё в той или другой папке.

Ладно, храмы. А если хочется написать о кухне? Где искать фото конкретных блюд? Если их «запихнуть» в папку «Еда», неудобно писать об экскурсиях. Если в «Экскурсия по Военно-Грузинской дороге», потом в жизни не найдёшь для статьи о питании в Грузии.

Главные проблемы с таким подходом

Когда вы только начинаете вести блог, нет ничего плохого чтобы делать точно так же. Воспоминания после первой поездки всё ещё свежие, а фотографий хорошо если пять или десять тысяч. Всё легко находится и главная проблема звучит как «блин, и почему я это не сфотографировал, проходил же мимо!».

Но я пишу о путешествиях уже десять лет. Во многие страны раньше ездили чуть ли не каждый год. То есть количество фотографий по каждой стране давно перевалило за сотню тысяч. И вот с этим уже появляются проблемы:

  1. Их невозможно рассортировать. Занимаюсь разными путеводителями уже больше десяти лет и понял одну простую вещь: как фото на диске ни сортируй, потом всё равно ничего не найдёшь. Либо придётся один и тот же снимок размещать в десятках папок. И тогда быстро не узнаешь использован он уже или ещё «свежий».
  2. Время на поиски фото. Я засекал: на поиски подходящей иллюстрации у меня уходит от пяти до сорока минут. Во многих статьях используются десятки и даже под сотню снимков. Например, если пишу о достопримечательностях Грузии (163 фото). Часто бывает и так, что текст пишется в разы быстрее, чем подбираются иллюстрации к нему.
  3. Долго листать фото «по одной». Total Commander позволяет настроить всё так, чтобы видеть «плитки» фото. С большими промежутками между ними и не без «танцев с бубном», но всё же. Правда мне так и не удалось генерировать эти миниатюры в том же цветовом профиле, как они будут выглядеть в браузере. Что иногда сильно мешает.

    Так выглядят иллюстрации к этой статье в Total Commander. И я был жутко рад, когда настроил хотя бы такое. Пишите если кому тоже надо, поделюсь кодом.
  4. Фото на Windows или Macbook выглядят красочнее, чем в браузере. Возможно, вы тоже сталкивались с ситуацией когда на диске фотография выглядит красочно, а в браузере заметно бледнее. Я перерыл много «просмотрщиков» и только XnView удалось настроить так, чтобы «как вижу на компе, так будет и на сайте». Но без «плиток», да.
  5. Сложно «помнить», какая фотография для какого сайта. Пока сайт один — это не проблема. Когда их несколько, очень не хочется публиковать один и тот же снимок по всему интернету. Хорошо бы без лишних усилий помнить, какая фотография где использовалась.
  6. Невозможно работать в команде. Если фото хранятся на дисках, то никакой синхронизации их между разными компами не получится. Пока мы работали вдвоём с женой, я пытался делать сетевое хранилище. Но загрузка по Wi-Fi даже FullHD картинок (250-500 килобайт каждая) довольно сильно тормозила. Не тот случай, когда можно быстро отсмотреть сотню фотографий и найти нужную. И я в итоге на это забил. Так и «носились» с дисками. Когда людей стало больше, приходилось каждому объяснять свою «систему»: где что лежит, как подписывать фотографии, как отмечать уже использованные снимки и т. д.
  7. Надо возить/носить с собой жёсткий диск. Самые полезные снимки можно сохранить на ноутбуке. Но они занимают место, которого и так всегда не хватает.

Может это я отсталый? Как хранят другие?

Опросил больше десятка знакомых блогеров. Добрая половина из которых даже продают свои фото на стоках. То есть по идее народ должен «шарить». Оказалось, что почти все поступают примерно так же: папки по годам, внутри — по темам. Кто-то прописывает ключевые слова в названии файлов или их мета-описании. Кто-то просто долго ищет каждый снимок.

Многие настолько «задолбались» рыться в десятках папок, что просто не используют фотографии старше года или двух. Даже если они вполне себе подходят и ничуть не устарели. Командная работа, чтобы все авторы знали, где и какое фото использовано или видели новые снимки, не реализована вообще ни у кого.

Мне тут понравилось мнение одного опытного блогера. Он сортирует фото только по годам и дням. Объясняет так, что на создание горы папок уходит довольно много времени. Пока фото не старше года-двух, он и так прекрасно помнит, где что лежит. А лет через пять уже не важно, какой будет структура каталогов, всё равно быстро ничего не найдёшь.

Свой фотобанк: смотрим на лучших

Несколько лет назад я начал покупать фотографии на стоках. И вдруг поймал себя на том, что часто беру платные стоковые фото даже если у меня есть собственная, уникальная, да ещё и более подходящая. Просто лень тратить по полчаса на поиски каждого снимка. И «мой ленивый мозг» идёт по пути наименьшего сопротивления.

То есть в мире уже существует решение, которое во много раз лучше всех этих папочек с фотографиями. Тогда то и появилось жгучее желание сделать свой фотобанк. Но так как задача казалась слишком уж масштабной, отложил её в долгий ящик «на обдумывание».

И вот с полгода назад вернулся к идее. Начал анализировать популярные фотостоки чтобы подсмотреть какой функционал у них особенно полезный, а какого не хватает. Мне понравилось:

  1. Возможность быстрого поиска по ключевым словам.
  2. Гибкая система фильтров. Горизонтальная/Вертикальная, С людьми/Без людей и т. д.
  3. Выдача, где сразу можно увидеть много картинок «одна рядом с другой».
  4. Похожие снимки на странице конкретной фотографии.
  5. Возможность сохранять особенно удачные снимки на случай, если они понадобятся позже.

Вот примерно с таким ТЗ я и начал разработку. Естественно, сначала хотел приобрести готовую тему, где уже реализовано всё перечисленное выше и даже больше. Но посмотрев платные шаблоны и скрипты я понял, что допилить что-то готовое «под себя» займёт намного больше времени, чем создать нужное мне решение «с нуля».

Как создать фотобанк для сайта?

Лучшим решением для такой задачи было бы взять какой-то фреймворк и пилить на его основе. Например, Laravel, Django, React, Symfony.

Если бы это был сайт «для людей», я бы может так и сделал. Но так как инструмент нужен «для себя», то решил использовать уже хорошо знакомый WordPress. Я изначально понимал, что получится чуть хуже и не так функционально. Зато я получу свой фотобанк раз так в десять быстрее.

Вообще, при разработке инструментов для внутреннего использования важно уметь «притормозить» внутреннего перфекциониста. Выделили самый важный функционал — реализовали только его. Пользуетесь. Поняли, чего очень уж не хватает — добавили. Иначе можно «закопаться» в реализацию сотни «фич», и разработка сожрёт больше времени, чем даже теоретически сможет вам сэкономить.

Система фильтров на сайте

Довольно быстро я понял, что реализовать поиск «как на фотостоках» окажется слишком уж трудозатратно. У них десятки тысяч авторов, которые сами «размечают» снимки: дают им названия, ставят какие-то теги и т. д. Я же буду все фотографии загружать самостоятельно. А потому, просто не могу уделить этому столько времени: 50 000 фоток, по минуте на каждую это уже полгода работы.

Также на фотостоках мне не очень нравится как работает поиск. Например, по ключевым словам «Дорога в Грузии» не будут показаны снимки с описанием вроде «Автомобильная дорога в горах рядом с Гудаури». Хотя Гудаури как раз в Грузии. Не подумал автор об этом — не смогу я купить его фотографию. Стокеры, задумайтесь.

Вместо обычной строки я решил использовать что-то вроде «тегов». То есть, у каждого снимка будет от пяти до двадцати таких «ключевых слов», по которым его и можно найти. «Ассортимент» таких тегов никак не ограничен. Для всех фото о Грузии мне хватило 411 штук.

Вот как выглядит главная страница фотобанка. Здесь и дальше для вашего удобства все скрины я перевёл на русский:

Минималистично, да? Но больше ничего и не надо.

На скрине вы можете увидеть список всех «тегов», которые есть на сайте. Они отсортированы «по популярности». Начинаете вводить запрос и видите только подходящие. Давайте попробуем поискать «авт»:

Как видите, даже по трём буквам 411 тегов сократились до четырёх.

Для ускорения работы настроены клавиатурные комбинации. Так что поиск даже по 3-4 тегам занимает у меня не больше 30 секунд. Давайте попробуем. Допустим, мне нужны ранее не использованные фото водопадов в Тбилиси:

Сайт показал все фото водопадов, которые есть в Тбилиси.

Логика работы фильтров довольно простая. В данном случае мы ищем картинки с тегами «Водопады» и «Тбилиси» (и то, и другое на одном фото). И чтобы они не использовались ни на одном из перечисленных сайтов. То есть, новые, «уникальные». Но можно фильтровать и чуть глубже.

Например, недавно я писал статью о водопадах вокруг Кутаиси. И мне нужны были снимки всех водопадов, кроме Мартвили (место популярное, и о нём уже было написано). И чтобы без людей. Просто указываем фильтры так:

А потом парой кликов «выключаем» последние два фильтра, чтобы они нам не показывались. Так мы «отфильтруем» до 90% фотографий, которые у меня как раз из Мартвили. Вот что получилось:

Как видите, нашли все подходящие фото меньше чем за минуту.

На скрине видно как выглядит «плитка» с фотографиями. Снимки достаточно крупные, чтобы их можно было рассмотреть, но при этом на экране видно сразу много вариантов. Наверху самые «свежие», чем больше лет фотке, тем ближе к концу выдачи она будет.

В начале могут показываться особенно удачные кадры. Они выделяются небольшой красной рамкой. Но конкретно по этому запросу их уже нет: как раз использовал для той статьи.


Естественно, такая система фильтров не идеальна. Что-то я мог и пропустить или не разметить. Но в этом случае остаётся «старый добрый» поиск по всем фото в условном Тбилиси. Ровно так же, как и раньше. Но тут хотя бы не надо просматривать снимки «по одному».

Как выглядит страница фотографии

Пожалуй, стоит показать как выглядит страница конкретной фотографии. Всё довольно просто и минималистично:

Открыл первую попавшуюся под руку фотографию. Это Сигнахи в Кахетии.

На скрине слева сама фотография. Кликом по ней можно открыть её в полном размере. Внизу кнопки для скачивания. Нажимаешь на сайт, где планируешь размещать фотографию, и система сама запомнит, что фото уже использовано и где. Можно сразу же указать в том числе и название снимка, если это кому-то надо. Потом проще будет найти.

Чуть ниже дата съёмки, теги, которые назначены этой фотографии, возможность пометить её как неиспользованную (если передумал), как красивую (чтобы проще потом было найти) или удалить (если фото больше не актуально, вроде цен пятилетней давности).

Справа показываются похожие фотографии. Из того же места, например. Иногда помогает быстро найти «пару» для картинки, чтобы сделать галерею. Ещё ниже, уже за пределами скриншота, такая же форма поиска с заполненными для этой фотки тегами.

Загрузка фото на фотосток

О самом интересном рассказал. Теперь пора показать как работает загрузка фотографий. Я использовал обычный интерфейс медиафайлов WordPress, лишь слегка увеличив размеры фотографий. Выглядит вот так:

Интерфейс административной части.

Можно выделять сразу несколько снимков при помощи Ctrl или Shift. Как на компьютере. На большинство кнопок назначены сочетания клавиш. Это очень ускоряет процесс в сравнении с клацаньем мышкой и превращает его в слегка медитативный.

На самом деле, разметка фото заняла у меня намного меньше времени, чем ожидалось. Всё за счёт того, что большинство фотографий идут сериями. Например, подряд может быть около сотни фотографий какого-то озера или водопада. Выделил все фото, назначил теги. Потом быстро пробежался по ним ещё раз и добавил несколько тегов то тут, то там.

Интерфейс назначения тегов группе фотографий. Всё примерно то же, что и на фронтенде.

Также очень помогает «автозаполнение». Это когда я указываю, например, «водопад Гвелети». А сайт уже сам добавляет теги: «Природа», «Водопады», «Окрестности Кутаиси», «Достопримечательности». Получается намного быстрее. Ещё один пример. Я указываю «Аджарский хачапури», сайт сам добавляет «Хачапури», «Выпечка», «Грузинская кухня», «Еда». В общем, тут главное один раз всё продумать…

Типичный процесс «разметки» тысячи фотографий занимает от 20 до 60 минут. Выглядит так:

Какие данные о фото вносятся автоматически?

Уже на этапе загрузки снимков в базу вносятся данные об их ориентации (горизонтальная или вертикальная) и дате (из мета-тегов фотографии). Когда к фотобанку присоединилось несколько авторов, я сделал, чтобы автоматом проставлялось ещё и авторство.

Сразу после загрузки фотографии «сжимаются» с минимальными потерями качества при помощи нескольких утилит. Самая эффективная — Pingo Image Optimizer (старая версия для Linux). Нарезается одна миниатюра чтобы не показывать в поиске по фото их полноразмерные версии.

В теории можно было бы сделать чтобы определялся основной цвет снимка. Но я не веду Instagram, а потому мне такой функционал пока ни к чему.

Из всего перечисленного выше реально удобным оказалась возможность быстро найти только вертикальные или горизонтальные кадры. Ускоряет поиски нужной фотографии в 1,5-3 раза.

Что хотелось бы доделать?

Иногда бывает так, что у меня есть более-менее подходящий снимок, но «с косяками». Например, солнце светило прямо в объектив или просто кадр получился недостаточно красочным и ярким. Обычно я подправляю такое в Lightroom. У меня есть сто лет назад купленная версия для Windows и штук пять любимых пресетов.

Думал реализовать интеграцию с какой-то «улучшалкой» фото. Искусственный интеллект сейчас в моде, так почему бы ему не делать мои снимки ещё красивее? Потестировал с десяток сервисов, у которых есть API. И результат после обработки обычно даже хуже, чем изначальный снимок. В общем, не удалось найти ничего интересного с оплатой за количество улучшенных фото.

В теории можно было бы сделать интеграцию с Lightroom. Но там вроде как уже нужна подписка с помесячной оплатой. Ради 1-2 фотографий в месяц оно того не стоит.

Большой фотосток или несколько маленьких?

Покрутив идею в голове и кое-что протестировав я решил не делать один фотобанк «обо всех странах», а для каждой страны создать отдельный. Да, бывают ситуации, когда сделанный в Черногории снимок пригодился бы мне для сайта о Грузии. Но бывает такое довольно редко.

Зато имея несколько фотобанков я могу давать разным людям доступ только к фотографиям, которые им нужны. Тегов получается намного меньше — удобнее искать. Бекапы каждого отдельного сайта занимают меньше места и их проще «выкачивать». В общем, масса плюсов.

Где это всё разместить?

В качестве хостинга использую VPS от Lite.host. В основном, потому, что там очень классный админ, который готов был мне всё действительно круто настроить. Включая совсем уж странные «хотелки».

У меня выстроена целая инфраструктура с возможностью моментально переключиться на резервный сервер, если вдруг упадёт основной, ежесуточными «горячими» бекапами, своим VPN, минификацией скриптов, защитой от ботов, кешированием и сравнительно быстрой скоростью работы сайтов по всему миру, а не только «поблизости» от хостинга. Это, в основном, для англоязычной версии.

Вот что показывает GTMetrix для Канады (далеко от хостинга) и для Лондона (поближе):

Скорость загрузки сайта из Канады
Скорость загрузки сайта из Лондона

Это главная страница. Она очень большая. А ещё скорость её загрузки «тормозят» карты и виджеты, на которые я никак не могу повлиять. Всё остальное довольно неплохо оптимизировано.

По цене получается более-менее адекватно: около 25 долларов в месяц. Что сопоставимо с одним-двумя «дополнительными» заказами. Может такая скорость работы приносит мне эти заказы, может нет. Но есть ощущение, что всё же оно окупается.

Если хотели бы узнать как это всё работает — пишите в комментариях. Так у меня будет больше мотивации написать статью об инфраструктуре для тревел-блога, а у Travelpayouts — ещё один стимул меня на это уговорить. Ну или можете написать Евгению напрямую и попросить настроить всё «как у меня». Он помнит что и как делал.

Главный минус — «Bus Factor = 1». Когда хостингом «рулит» всего один человек, это сравнительно опасно. Потому и «горячие» бекапы.

Сколько времени это заняло?

Как ни странно, задача оказалась намного проще, чем я предполагал изначально. На написание функционала, его «допиливание» и поиски «багов» у меня ушло меньше недели. Ещё примерно сколько же потратил на загрузку и «разметку» всех фотографий.

Если бы знал, что это настолько просто, реализовал бы ещё лет пять назад. Ух сколько времени сэкономил бы! Но почему-то казалось, что меньше чем за несколько месяцев подобное не создать. Я и взялся за это чисто чтобы отдохнуть от обновления статей. Всегда любил программировать и создавать что-то полезное.

Учитывая, что фотобанк я закончил примерно полгода назад, он уже несколько раз окупился в виде времени, сэкономленного на поисках фотографий и чуть возросшего качества статей. Если б надо было тратить по полчаса на поиски каждой фотки, я б на это «забил».

Минусы такого подхода

Понятно, что ни одно решение не может быть идеальным. А потому вот выявленные мной минусы:

  1. Нужен доступ в интернет. Нет интернета — сайт не открывается и никакие фото не поискать. Это будет мешать, если привыкли работать из кафе с медленным Wi-Fi.
  2. Это стоит денег. Я загрузил 50 тысяч своих фото по Грузии. Это заняло примерно 17 ГБ места. У меня средние по качеству SSD диски. Плачу за расширенное дисковое пространство 3-4 доллара в месяц.
  3. Я не храню Raw. Просто мне не надо. Но в теории это совсем не сложно. Просто пишем пару строк кода, который при загрузке JPG на сайт автоматически вносит в базу где «лежит» RAW. Нашли снимок на сайте, пошли за внешним диском уже зная название и путь к файлу. Второй вариант — хранить Raw сразу на хостинге. Но это будет уже реально дорого.

Выводы: а стоило ли оно того?

Как по мне, да. Естественно, точных цифр я назвать не смогу. Но чисто субъективно искать фото стало в разы, если не на порядки, быстрее. И, скорее всего, потраченное на создание фотобанка и «разметку» фотографий время давно уже окупилось не один раз.

Главный плюс для меня — я перестал лениться подбирать удачные фотографии. Например, у меня десятки снимков дорог и с автомобилями. Но когда последний раз переписывал эту статью об аренде авто, так замучился с текстом, что подбирать иллюстрации стало банально лень. Что первое под руку подвернулось, то и разместил.

При следующем большом обновлении материала я, скорее всего, смогу подкрепить её действительно хорошими снимками. Что, по идее, должно сказаться в том числе и на продажах.

Также небольшим плюсом считаю тот факт, что удалось объединиться с некоторыми коллегами. И теперь у нас общая база фотографий. Что иногда бывает очень даже удобно.

Идея для тревел-брендов

Как по мне, большинству стоило бы запустить похожие стоки. И дать доступ хотя бы самым успешным партнёрам. Уверен, что фотографии «водитель трансфера в аэропорту» или «машина на фоне гор» пользовались бы бешенным спросом.

Это я по себе сужу. Даже с учётом того, что давно занимаюсь блогом, у меня нет фотографий и с половины трансферов или аренды авто. В путешествии всегда «не до этого». То спешишь куда-то, то жарко, то погода не позволяет нормально всё отснять.

Exit mobile version