Автоматизация сохранения данных из Instagram

Привет, дааа снова CLI утилита.

Зачем?

Хочу периодически бэкапить некоторые Instagram аккаунты и опционально иметь возможность скачивать фото из профиля, сториз, IGTV видео, описание фото, само фото и пр.
Также автоматизирую выкачивание фото, которые я добавил в сохранёнки, добавлю возможность выбирать какой аккаунт бекапить, просто подпиской на данного пользователя.
И выкачивание доступных сториз у пользователей.

Как сделаем?

Воспользуемся тулзой на Питоне https://instaloader.github.io/index.html можете изучить, какие данные вы сможете выкачивать с ее помощью.
Установлю программу и настрою ее на своей VPS и настрою вызов программы по крону.

Делаем

Устанавливаем утилиту. Понятное дело нужен питон на машине

pip3 install instaloader
  • создаю отдельную папку для скаченных данных:
cd ~/tools
mkdir instagram
  • настраиваем конфигурационный файл с логином и паролем с Instagram аккаунтом для утилиты:
vim ~/cd/.config/instaloader/main.conf
  • вводим наш логин и пароль от учетной записи Instagram:
--login=cli_download_beaver_inst
--password=123456
  • сохраняем файл
    Я для этой утилиты завел отдельный аккаунт. Не стал привязывать свой основной https://www.instagram.com/tatarinovms/ так как отдельным аккаунтом удобнее оперировать.
  • создаем скрипт для крона:
vim ~/.config/instaloader/cron.sh
  • пишем простой скрипт:
#!/bin/bash
cd ~/tools/instagram/
instaloader +~/.config/instaloader/main.conf :stories -F -q
instaloader +~/.config/instaloader/main.conf :saved -F -q
instaloader +~/.config/instaloader/main.conf @cli_download_beaver_inst -F -q

Объясню каждую строчку:

выкачиваем stories которые доступны в нашем аккаунте @cli_download_beaver_inst

выкачиваем все фотографии и данные которые мы добавили в сохранёнки для @cli_download_beaver_inst

выкачиваем все фотографии и данные пользователей, на которых подписан @cli_download_beaver_inst

ключ -q запускает программу в «тихом режиме» т.е показываются только ошибки

ключ -F нам позволит нам пропускать скачивание, если мы уже скачивали данный файл:

tatarinovms/2020-08-01_11-14-15_UTC_profile_pic.jpg already exists
Retrieving posts from profile tatarinovms.
[   1/1064] tatarinovms/2020-07-17_17-55-20_UTC.jpg exists [Хозяин, ты что ешь? Прям это?] unchanged json

т.е например мы уже не будем перекачивать все 1064 фотки, так как они уже есть.

  • сохраняем наш скрипт
  • делаем наш скрипт исполняемым
chmod u+x ~/.config/instaloader/cron.sh
  • настраиваем cron
    Чтобы добавить задание в cron используем утилиту crontab:
crontab -e
  • добавляем строчку:
0 20 * * * ~/.config/instaloader/cron.sh

т.е мы вызываем скрипт каждый день в 20:00.

P.S если не знаете как крону указать нужное вам время, используете сайт https://crontab.guru на нем можно подобрать желаемый вам вариант.

  • сохраняем изменение в crontab:
    Если появилась строчка:
crontab: installing new crontab

значит мы все сделали верно.

Вы прекрасны! Автоматизация во все дома!

Поделиться
Отправить
 2   1 мес   cli   Instagram
Популярное