/yt2vk

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

YouTube-VK Notifier

YouTube-VK Notifier - это скрипт, который позволяет автоматически оповещать подписчиков вашей группы ВКонтакте о выходе новых видео на каналах YouTube.

Как это работает?

Скрипт взаимодействует с RSS-каналами YouTube и VK API для определения новых видео на каналах и автоматической публикации их на стене группы ВКонтакте. В частности, он:

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

Как использовать?

Шаг 1. Установка

Скачайте или клонируйте репозиторий:

git clone https://github.com/TVP-Support/yt2vk.git

Перейдите в директорию проекта:

cd yt2vk

Установите и активируйте виртуальное окружение:

python -m venv env && . ./env/bin/activate

Установите все необходимые зависимости для работы программы:

pip install -r requirements.txt

Шаг 2. Создание файла .env

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

cp example.env .env

Файл .env содержит конфиденциальные данные, такие как ключи API, пароли и токены. Никогда не публикуйте файл .env в открытом доступе. Проверьте, что файл .env содержит все необходимые переменные, необходимые для работы программы, включая DATABASE_URL, в котором указывается путь к базе данных.

Шаг 3. Добавление ссылок на каналы

Для начала, необходимо добавить ссылки на каналы в файл urls.txt. Каждая новая строка в этом файле представляет собой подписку на канал. В каждой строке может быть ссылка на канал, ссылка на видео, id канала или название канала. Примеры возможных форматов строк:

https://www.youtube.com/@theextensional
https://www.youtube.com/watch?v=E0PlcW4vGJk
https://youtu.be/E0PlcW4vGJk
https://www.youtube.com/channel/UCrV_cFYbUwpjSOPVJOjTufg
https://www.youtube.com/c/Экстенсиональный
UCrV_cFYbUwpjSOPVJOjTufg
@theextensional

Убедитесь, что каждая подписка начинается с новой строки и что все ссылки находятся в файле urls.txt.

Шаг 4: Добавление новых подписок в базу данных

Убедитесь, что у вас есть файл urls.txt в корневой директории проекта, содержащий URL-адреса видео, каналов или пользователей YouTube, которые вы хотите добавить в базу данных.

Запустите файл add_subscription.py, введя следующую команду в терминале, находясь в корневой директории проекта:

python add_subscription.py

Эта команда запустит функцию first_run(), которая создаст подключение к базе данных, создаст таблицу subscriptions, и добавит в базу данных все новые каналы, указанные в файле urls.txt.

Если добавление прошло успешно, вы увидите сообщения об успешном добавлении данных в базу данных в консоли. Если в процессе добавления возникли ошибки, программа выведет сообщение об ошибке в консоли.

Шаг 5: Получение ключа доступа сообщества

Документация. Права доступа для токена сообщества

  1. Создайте Standalone-приложение на сайте VK Developers: https://vk.com/dev/standalone.

  2. Зайдите в настройки созданного приложения и скопируйте его client_id.

  3. Сформируйте ссылку для авторизации в сообществе или воспользуйтесь этой ссылкой, подставив свой CLIENT_ID:

    https://oauth.vk.com/authorize?client_id={CLIENT_ID}&scope=video,wall,offline&redirect_uri=http://api.vk.com/blank.html&response_type=token

    • Замените {CLIENT_ID} на client_id вашего Standalone-приложения
    • Замените {SCOPE} на список требуемых прав доступа через запятую (например, video,wall,offline)
  4. Откройте сформированную ссылку в браузере и авторизуйтесь. После этого вы будете перенаправлены на URI-адрес в адресной строке которого будет содержаться ключ доступа access_token. Будьте внимательны при копировании, потому что access_token находится в середине ссылки.

  5. Сохраните полученный ключ доступа и ID сообщества в файле .env. Например:

    ACCESS_TOKEN=<ваш ключ доступа>
    GROUP_ID=<ID вашего сообщества>

Шаг 6: Запуск приложения

Запустите файл main.py, введя следующую команду в терминале, находясь в корневой директории проекта:

python main.py

Приложение будет запущено и начнет работу. Оно будет периодически получать новые видео с каналов, указанных в базе данных, и публиковать их в вашем сообществе VK.

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