YouTube-VK Notifier - это скрипт, который позволяет автоматически оповещать подписчиков вашей группы ВКонтакте о выходе новых видео на каналах YouTube.
Скрипт взаимодействует с RSS-каналами YouTube и VK API для определения новых видео на каналах и автоматической публикации их на стене группы ВКонтакте. В частности, он:
- Проверяет базу данных подписок на наличие новых видео;
- Если есть новое видео, выводит сообщение в консоль и обновляет дату последнего видео в базе данных;
- Публикует сообщение на стене группы ВКонтакте с информацией о новом видео.
Скачайте или клонируйте репозиторий:
git clone https://github.com/TVP-Support/yt2vk.git
Перейдите в директорию проекта:
cd yt2vk
Установите и активируйте виртуальное окружение:
python -m venv env && . ./env/bin/activate
Установите все необходимые зависимости для работы программы:
pip install -r requirements.txt
Перед началом использования программы необходимо создать файл .env
в корневой директории проекта. Для этого можно скопировать содержимое файла example.env
, находящегося в корневой директории, в новый файл .env
или воспользуйтесь этой командой:
cp example.env .env
Файл .env
содержит конфиденциальные данные, такие как ключи API, пароли и токены. Никогда не публикуйте файл .env
в открытом доступе. Проверьте, что файл .env
содержит все необходимые переменные, необходимые для работы программы, включая DATABASE_URL
, в котором указывается путь к базе данных.
Для начала, необходимо добавить ссылки на каналы в файл 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
.
Убедитесь, что у вас есть файл urls.txt
в корневой директории проекта, содержащий URL-адреса видео, каналов или пользователей YouTube, которые вы хотите добавить в базу данных.
Запустите файл add_subscription.py
, введя следующую команду в терминале, находясь в корневой директории проекта:
python add_subscription.py
Эта команда запустит функцию first_run()
, которая создаст подключение к базе данных, создаст таблицу subscriptions
, и добавит в базу данных все новые каналы, указанные в файле urls.txt
.
Если добавление прошло успешно, вы увидите сообщения об успешном добавлении данных в базу данных в консоли. Если в процессе добавления возникли ошибки, программа выведет сообщение об ошибке в консоли.
Документация. Права доступа для токена сообщества
-
Создайте Standalone-приложение на сайте VK Developers: https://vk.com/dev/standalone.
-
Зайдите в настройки созданного приложения и скопируйте его
client_id
. -
Сформируйте ссылку для авторизации в сообществе или воспользуйтесь этой ссылкой, подставив свой
CLIENT_ID
:- Замените {CLIENT_ID} на client_id вашего Standalone-приложения
- Замените {SCOPE} на список требуемых прав доступа через запятую (например, video,wall,offline)
-
Откройте сформированную ссылку в браузере и авторизуйтесь. После этого вы будете перенаправлены на URI-адрес в адресной строке которого будет содержаться ключ доступа
access_token
. Будьте внимательны при копировании, потому чтоaccess_token
находится в середине ссылки. -
Сохраните полученный ключ доступа и ID сообщества в файле
.env
. Например:ACCESS_TOKEN=<ваш ключ доступа> GROUP_ID=<ID вашего сообщества>
Запустите файл main.py
, введя следующую команду в терминале, находясь в корневой директории проекта:
python main.py
Приложение будет запущено и начнет работу. Оно будет периодически получать новые видео с каналов, указанных в базе данных, и публиковать их в вашем сообществе VK.
Вы можете изменить настройки приложения, указав другой интервал времени для проверки новых видео или другие настройки публикации. Для этого отредактируйте соответствующие поля в файле .env.