Введение

Проблема пространства

Есть какое-то количество фото и видео в Google Photos или Yandex Диск (список поддерживаемых провайдеров в этом гайде) и место в облаке постепенно заканчивается, особенно если вы снимаете много контента в 4К, либо активно делаете снимки.

С того момента, когда у вас начало заканчиваться место в облаке, у вас, как говорится, 2 пути:

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

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

Для меня видеть только те фото и видео, которые я сделал за последние 2–3 года не было критичным. Поэтому было принято решение продолжить использовать своё Google облако на 200ГБ.

Так, я выбрал второй вариант с созданием бэкапа данных каждые 2–3 года.

Я также принял это решение потому, что мне бы всё равно, рано или поздно, пришлось бы делать бэкап данных из облака. Когда-нибудь я бы всё равно достиг отметки 1ТБ и с этим нужно было бы что то делать.

Проблема размера файлов

В Google Photos есть возможность просматривать файлы, которые занимают много места. У меня это были короткие 4K видео, на которых я путешествую по разным странам, занимаюсь спортом, либо снимаю парки и улицы. Многие из этих видео весят неоправданно много и могли бы весить в 10 раз меньше, если бы я снимал в 1080p 60к/c. Зачем хранить 30-секундное 4K видео, размер которого 400МБ, если можно хранить его же в 1080p 60к/c, с размером 65МБ?

И опять же, с того момента, когда у вас появилось много 4К роликов в облаке, у вас 2 пути:

  1. Удалить 4К видео и освободить место в облаке.
    Плюсы: вы освободили место
    Минусы: вы потеряли воспоминания

  2. Скачать эти видео на свой ПК, конвертировать 4K в 1080p 60к/c и залить обратно в облако.
    Плюсы: вы сохранили ваши воспоминания, а также освободили место в облаке.
    Минусы: ваши видео теперь в 1080p 60к/c (для меня это не стало проблемой).

Итого мы имеем 2 проблемы:

  • Проблема пространства

  • Проблема размера файлов

Потенциальные решения описанных проблем

Первая мысль, которая пришла мне в голову, это такой порядок действий:

Для освобождения места в облаке:

  1. Зайти в Google Photos;

  2. Выделить все 14 000 фото и видео (в Google Photos это делается далеко не в один клик, и на это можно смело закладывать час работы);

  3. Скачать все фото и видео на локальный диск (всё скачивается архивом в браузере);

  4. Разархивировать архив;

  5. Рассортировать все 14 000 файлов по датам или событиям (это уже довольно большая и утомительная работа);

  6. Удалить все фото и видео из облака, начать заполнять облако заново;

  7. И так каждые два года.

Звучит как адская работёнка!

Для больших 4К видео:

  1. Зайти в Google Photos;

  2. Отсортировать все видео по размеру;

  3. Скачать большие 4К видео;

  4. Открыть эти видео в Movavi Video Editor Plus;

  5. Конвертировать 4К в 1080p 60к/c;

  6. Залить обратно в облако.

Меня совершенно не устраивало то, что я должен инвестировать во весь этот процесс довольно много времени. Главное — этот процесс будет регулярным, что пугает ещё сильнее.

Появилась необходимость придумать элегантное решение, чтобы поставить весь этот процесс на рельсы.

Реальное решение описанных проблем

Как вы, наверное, уже поняли, нативного инструмента скачивания всех данных из облака нет. То есть вы не можете зайти в Google Photos и быстро скачать все файлы себе на локальный диск.

Представьте, как было бы удобно, если бы вы могли зайти в Google Photos, нажать кнопку Скачать, все фото скачиваются на ваш локальный диск, так ещё и сортируются по годам, месяцам и даже дням. Вам не нужно работать с архивами или сортировать файлы вручную. Вы также могли бы скачать все 4К видео и конвертировать их в 1080p 60к/c, не запуская никаких видеоредакторов.

Мои небольшие исследования позволили найти решение, которое решает эти проблемы именно так, как описано выше.

Вам понадобятся 2 инструмента:

  • ffmpeg (вариант ffmpeg-release-full).

    При помощи этой программы мы будем конвертировать 4К видео в 1080p 60к/c без видеоредакторов.

     Я использовал Version v7.0.2 - ffmpeg-release-full.7z
    Я использовал Version v7.0.2 - ffmpeg-release-full.7z
  • Rclone (выберите вариант, соответствующий вашей системе).

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

    Я использовал Release v1.67.0 для Intel/AMD - 64 Bit - Windows
    Я использовал Release v1.67.0 для Intel/AMD - 64 Bit - Windows

Конвертация видео при помощи FFMPEG

Порядок настройки перед использованием ffmpeg:

  1. Выберите локальный диск, на котором вы хотите хранить скачанные файлы программы ffmpeg;

  2. Создайте папку на локальном диске (название не должно содержать кириллицу);

  3. Перенесите туда всё содержимое архива, который вы скачали с сайта ffmpeg.

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

Для этого:

  1. Скопируйте путь, куда вы вставили файлы из архива, как показано на скриншоте:

    Вы можете нажать на поле и скопировать расположение файлов
    Вы можете нажать на поле и скопировать расположение файлов
  2. Для английской версии Windows, вам нужно перейти:
    Start > Search > Edit the system environment variables > Advanced > Environment Variables.
    Для русской версии Windows, вам нужно перейти:
    Пуск > Поиск > Изменение системных переменных сред > Дополнительно > Переменные среды.

    В открывшемся окне вы должны найти строчки с переменной Path и нажать Редактировать как показано на скриншоте ниже:

    Зайдя в Переменные среды, нажмите на Редактировать переменной Path
    Зайдя в Переменные среды, нажмите на Редактировать переменной Path

  3. В открывшемся окне самое время создать новую переменную. Помните, вы копировали путь, где располагается наша программа ffmpeg? Нажмите на кнопку New и создайте новую переменную, вставив туда путь, который вы скопировали, и нажмите Ok.
    В оставшихся окнах также везде нажмите Оk

    Создайте новую переменную, указав путь расположения ffmpeg
    Создайте новую переменную, указав путь расположения ffmpeg

Если вы всё сделали правильно, то поздравляю, вы только что настроили ffmpeg и можете конвертировать видео!

Проверка работоспособности ffmpeg

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

Для проверки ffmpeg:

  1. Запустите терминал Windows. Пуск > Поиск > Терминал

  2. В терминале напишите простую команду ffmpeg

    Если вы сделали всё правильно и система увидела программу по пути, который вы указали в переменных, то вы увидите такой ответ:

    Корректный ответ системы на запрос о запуске ffmpeg по указанному пути
    Корректный ответ системы на запрос о запуске ffmpeg по указанному пути

Это означает, что вы можете выполнить скрипт, который запустит ffmpeg и конвертирует ваши 4K видео в 1080p 60к/c.

Процесс детальной настройки ffmpeg

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

Структура внутри папки Google Photos Shelter
Структура внутри папки Google Photos Shelter

Для самостоятельного создания структуры выполните следующие действия:

  1. Создайте папку, в которую вы добавите ваши большие файлы для конвертации. У меня она называется Google Photos Shelter.

  2. Внутри этой папки создайте ещё 2 папки:
    - Converted Videos (туда будут уходить конвертированные видео)
    - Scripts (там будут храниться скрипты для конвертации)

  3. Третьим файлом я добавляю туда Readme файл, чтобы самому не забыть, как пользоваться созданным мною процессом. Я рекомендую отредактировать этот файл под ваши нужды, заменив мои пути на свои.

Для редактирования Readme файла вам нужно заменить следующие пути (позже, я объясню, для чего это нужно):

  1. Заменить
    cd /d "E:\Photos\Google Photos Shelter\Scripts"
    на
    cd /d "Ваш путь до папки со скриптами"

  2. Заменить
    E:\Photos\Google Photos Shelter
    на
    "Ваш путь до папки с файлами"

  3. Заменить
    E:\Photos\Google Photos Shelter\Converted Videos
    на
    "Ваш путь до папки с конвертированными видео"

Для того чтобы скрипты конвертации заработали на вашем устройстве, вам нужно их также отредактировать.

Вот как это сделать:

  1. Открыть скрипт 1080p_60fps_horizontal_script.bat в любом текстовом редакторе;

  2. Заменить
    set "INPUT_DIR=E:\Photos\Google Photos Shelter"
    set "OUTPUT_DIR=E:\Photos\Google Photos Shelter\Converted Videos"
    на
    set "INPUT_DIR=Ваш путь до папки со скриптами"
    set "OUTPUT_DIR=Ваш путь до папки с конвертированными видео"

Сделайте всё то же самое с другими скриптами:

  • 1080p_60fps_vertical_script.bat

  • 1080p_30fps_vertical_script.bat

  • 1080p_30fps_horizontal_script.bat

Если вы всё сделали правильно, то поздравляю, теперь у вас есть личная инструкция по конвертации файлов!

Процесс конвертации

Теперь, когда всё готово, вы можете конвертировать ваши первые файлы.

Самым быстрым способом будет:

  1. Откройте любое облако, которое вы используете и скачайте оттуда большие 4K видео;

  2. Перенесите скачанные видео в папку, которую вы создали. У меня она называется Google Photos Shelter. (Это та папка, где лежат папки Converted Videos, Scripts и Readme файл).

Теперь вам нужно запустить нужный скрипт для конвертации видео:

  1. Пуск > Терминал > cd /d "Ваш путь до папки со скриптами"

  2. Запустите бат-файл для горизонтальных видео:
    1080p_60fps_horizontal_script.bat

    или

    Запустите бат-файл для вертикальных видео:
    1080p_60fps_vertical_script.bat

  3. Опциональный шаг - вы можете добавить параметр "_skip" в начало названия файла и скрипт не будет конвертировать это видео. Это может пригодиться, если вы хотите сначала конвертировать горизонтальные, а потом вертикальные видео. Да, к сожалению, программа не различает горизонтальные и вертикальные видео в процессе конвертации.

    Видео с параметром "_skip" в начале названия, будут пропущены скриптом
    Видео с параметром "_skip" в начале названия, будут пропущены скриптом

Если вы всё сделали правильно, то все горизонтальные видео будут конвертированы в 1080p 60к/c и сохранены в папку Converted Videos.

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

Изменение даты создания мультимедиа в свойствах файла
Изменение даты создания мультимедиа в свойствах файла

В любой непонятной ситуации - обращайтесь к файлу Readme, в нём вы всегда найдёте правильный порядок действий.

Скачивание всех файлов из облака при помощи Rclone

Если вам необходимо полностью скачать все файлы из вашего облака, вы можете сделать это при помощи программы Rclone.

Порядок настройки перед использованием Rclone:

  1. Выберите локальный диск, на котором вы хотите хранить файлы Rclone;

  2. Создайте папку на локальном диске (название не должно содержать кириллицу);

  3. Перенесите туда всё содержимое архива, который вы скачали с сайта Rclone

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

Для этого:

  1. Скопируйте путь, куда вы вставили файлы из архива, как показано на скриншоте:

    Вы можете нажать на поле и скопировать расположение файлов
    Вы можете нажать на поле и скопировать расположение файлов
  2. Для английской версии Windows:
    - Start > Search > Edit the system environment variables > Advanced > Environment Variables.
    Для русской версии Windows:
    - Пуск > Поиск > Изменение системных переменных сред > Дополнительно > Переменные среды.

    В открывшемся окне вы должны найти строчки с переменной Path и нажать Редактировать как показано на скриншоте ниже:

    Зайдя в Переменные среды, нажмите на "Редактировать" переменной Path
    Зайдя в Переменные среды, нажмите на Редактировать переменной Path
  3. В открывшемся окне самое время создать новую переменную. Нажмите на кнопку New и создайте новую переменную, вставив туда путь, который вы скопировали, и нажмите Ok. В оставшихся окнах также везде нажмите Оk.

    Создайте новую переменную, указав путь расположения ffmpeg
    Создайте новую переменную, указав путь расположения Rclone

Если вы всё сделали правильно, то поздравляю, вы только что настроили Rclone и можете скачивать файлы из вашего облака.

Процесс детальной настройки Rclone

Подобно ffmpeg, Rclone также работает через терминал, что очень удобно, когда вы скачиваете, к примеру, 200ГБ и вы хотите видеть, какой конкретно файл сейчас скачивается, а также видеть общий прогресс скачивания.

Чтобы проверить, правильно ли работает Rclone, выполните следующее:

  • Пуск > Терминал > Введите команду rclone version и убедитесь, что вывод показывает установленную версию rclone.

Чтобы настроить Rclone:

  1. В терминале или командной строке выполните команду rclone config

  2. Создайте новое подключение: введите n, чтобы создать новое подключение

  3. Введите имя для вашего нового подключения, например, mygooglephotos. Введите своё имя для вашего нового подключения и запомните его. Это понадобится чуть позже.

  4. Выберите тип облачного сервиса, вписав число провайдера. Для меня это 17 , так как я использую Google Photos. Список поддерживаемых сервисов вы можете посмотреть по этой ссылке.

  5. Нажмите Enter, чтобы оставить значения по умолчанию для клиентского ID и клиентского секрета

  6. Выберите 1, чтобы использовать доступ Full access (Полный доступ)

  7. Нажмите Enter для пропуска настроек расширенных параметров

  8. Откройте ссылку в браузере для авторизации:
    - Следуйте инструкциям на экране. Откройте предоставленную ссылку в браузере и авторизуйтесь в Google Drive.
    - После авторизации скопируйте предоставленный код и вставьте его в терминал.

  9. Введите y, чтобы подтвердить, что вы хотите сохранить настройки.

  10. Введите q, чтобы выйти из меню конфигурации.

Если вы всё сделали правильно, то пора скачать ваше облако целиком!

Для вашего удобства отредактируйте Readme файл, чтобы в любое время освежить память и вспомнить порядок действий:

Для редактирования Readme файла вам нужно заменить следующие пути:

  1. Заменить
    rclone copy mygooglephotos:media/by-month "D:\Windows\Photos\Google Photos Backup" --verbose --progress --transfers 30
    на
    rclone copy "названиевашегоподключения":media/by-month "Ваш путь до папки, куда вы будете скачивать все ваши фото и видео из облака" --verbose --progress --transfers 30

    Постарайтесь запомнить название вашего подключения, которое вы придумали, настраивая Rclone в командной строке. У меня это был mygooglephotos.

  2. Заменить
    rclone copy mygooglephotos:media/by-month "D:\Windows\Photos\Google Photos Backup" --verbose --progress --transfers 30 --size-only --no-update-modtime
    на
    rclone copy "названиевашегоподключения":media/by-month "Ваш путь до папки, куда вы будете скачивать только новые фото и видео из облака" --verbose --progress --transfers 30 --size-only --no-update-modtime

    Постарайтесь запомнить название вашего подключения, которое вы придумали, настраивая Rclone в командной строке. У меня это был mygooglephotos.

Процесс скачивания и синхронизации файлов из облака

Самое время воспользоваться этими командами!

Откройте терминал и воспользуйтесь одной из команд ниже:

  • Для скачивания всех файлов из облака с сортировкой только по месяцу, необходимо использовать эту команду:
    rclone copy "названиевашегоподключения":media/by-month "Ваш путь до папки, куда вы будете скачивать все ваши фото и видео из облака" --verbose --progress --transfers 30

  • Для синхронизации только новых или изменённых файлов из облака, необходимо использовать эту команду:
    rclone copy "названиевашегоподключения":media/by-month "Ваш путь до папки, куда вы будете скачивать только новые фото и видео из облака" --verbose --progress --transfers 30 --size-only --no-update-modtime

Что делают эти команды? Давайте быстро разберёмся:

  • rclone copy - копирует файлы из вашего облака;

  • mygooglephotos:media/by-month - копирует файлы из вашего облака, а конкретно из общей папки (её название media). После этого, сортирует эти файлы у вас на компьютере по месяцам, а именно, папки будут выглядеть так: Года > Месяцы > Файлы.
    Если вы хотите заменить сортировку по месяцу на сортировку по годам или дням, то замените параметр by-month на параметры by-year или by-day соответственно;

  • "D:\Windows\Photos\Google Photos Backup" - путь, куда будет скачано всё ваше облако;

  • --verbose - подсчитает общее количество скачиваемых файлов в облаке и покажет его вам в процессе скачивания;

  • --progress - покажет вам прогресс скачивания в процентах;

  • --transfers 30 - будет одновременно скачивать 30 файлов, но вы можете изменить его на 10 или, например, 40;

  • --size-only - если вы синхронизируете файлы и в папке, куда вы скачиваете новые файлы из облака уже есть файлы с таким же размером, как и скачиваемые файлы, то система пропустит эти файлы. На мой взгляд, это лучший параметр по соотношению качество, скорость, чтобы избежать дубликатов. Вы также можете использовать параметр --checksum - он использует контрольные суммы файлов для проверки изменений, что может быть медленнее, но более точно.

  • --no-update-modtime - предотвращает обновление времени модификации файла на локальном диске, что значительно ускоряет процесс скачивания.

После того как вы запустите одну из команд, начнётся процесс скачивания всех ваших файлов из облака по указанной директории. У меня это HDD диск WD на 1ТБ, на котором я планирую хранить бэкапы всех моих данных из Google Photos.

Заключение

С учётом того, как много контента мы производим в наше время, я считаю, что необходимо ответственно относиться к хранению личной информации.

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

Я понимаю, что с первого взгляда этот гайд может показаться сложным, но я старался описать его как можно более простым языком.

Если у кого-то возникли трудности, то я буду рад помочь в комментариях.

Всем оптимизированных хранилищ!

Источники: ChatGPT 4o, всемирная паутина, индусы с YouTube, канал TroubleChute

Комментарии (13)


  1. Shpakov
    13.08.2024 13:50
    +1

    "У меня это HDD диск WD на 1ТБ, на котором я планирую хранить бэкапы"

    Хорошо бы еще копию на другой диск (который физически хранить в другом месте) и/или в другое облако...


    1. notalent Автор
      13.08.2024 13:50

      Если по всем правилам бэкапа, то вы правы! Ведь WD тоже может выйти из строя. Тут уже и до домашнего NAS недалеко, но это уже совсем другая история.


  1. David_Osipov
    13.08.2024 13:50
    +1

    Или можно просто кодить в AV1, а фотки в AVIF


    1. notalent Автор
      13.08.2024 13:50

      Никогда не слышал, сейчас загуглил и действительно, крутой стандарт


  1. Ilya_JOATMON
    13.08.2024 13:50

    А можно было купить себе диск на 4 - 6 тб и не парится.


    1. notalent Автор
      13.08.2024 13:50

      Как вариант - да, но хочется иметь хотя бы последние 3 года в быстром доступе и чтобы это хранилось не только в телефоне. В этом случае облако выручает


  1. skymal4ik
    13.08.2024 13:50
    +6

    >Конвертировать 4К в 1080p 60к/c;

    Смотрю на свои пережатые в 640х480 фото и видео со старого телефона и грущу. На одной чаше весов сэкономленные сотни мегабайт, на другой - потерянные навсегда оригинальные исходники.

    Свой урок я выучил - лучше откажу себе в походе в ресторан и куплю диск побольше, но пережимать исходники точно не буду.


    1. dyadyaSerezha
      13.08.2024 13:50

      Так он пережимает для заливки обратно в облако. Никто не мешает хранить дома на диске оригиналы. Хотя я не уверен, что 4К-видео можно отличить от Full HD на 60" телеке с расстояния 3 м.


      1. skymal4ik
        13.08.2024 13:50

        Понял, тогда нормас; но предостеречь всё равно хорошо :)


  1. trabl
    13.08.2024 13:50
    +1

    Что-то как-то сильно замудренно и много действий, как говорится "водку пьём, на спичках экономим". Я бы выбирал из двух вариантов, полноценный NAS с поддержкой минимум RAID 5, либо платить за облако и не париться. Но лучше и то и другое конечно.


    1. nitro80
      13.08.2024 13:50

      Raid6 (говорят, с него лучше восстановить данные) самосборной системе, ИБП, белый ip-адрес. Nextcloud в качестве системы хранения.

      Всё, с хранилищем 10Тб можно на десятилетие забыть про описанные выкрутасы.

      ЗЫ сам я тяжёлые 4k видео храню в YouTube.


  1. Universal32
    13.08.2024 13:50

    Зачем гугл фотос, когда есть Immich.


    1. notalent Автор
      13.08.2024 13:50

      Много слышал про Immich. Какие у него топ 3-5 преимущества перед Google Photos? И там и там за облачный сервис нужно платить, насколько я знаю. Да, у Immich больше свободы в управлении, но нужна ли она мне?