Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/theextensional/yt2vk
https://github.com/theextensional/yt2vk
python vk vk-api youtube
Last synced: 23 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/theextensional/yt2vk
- Owner: theextensional
- License: gpl-3.0
- Created: 2023-03-23T17:12:01.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-05-28T17:03:05.000Z (over 1 year ago)
- Last Synced: 2024-10-31T06:25:28.570Z (2 months ago)
- Topics: python, vk, vk-api, youtube
- Language: Python
- Homepage:
- Size: 62.5 KB
- Stars: 1
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
# YouTube-VK Notifier
YouTube-VK Notifier - это скрипт, который позволяет автоматически оповещать подписчиков вашей группы ВКонтакте о выходе новых видео на каналах YouTube.
## Как это работает?
Скрипт взаимодействует с RSS-каналами YouTube и VK API для определения новых видео на каналах и автоматической публикации их на стене группы ВКонтакте. В частности, он:
- Проверяет базу данных подписок на наличие новых видео;
- Если есть новое видео, выводит сообщение в консоль и обновляет дату последнего видео в базе данных;
- Публикует сообщение на стене группы ВКонтакте с информацией о новом видео.## Как использовать?
### Шаг 1. Установка
Скачайте или клонируйте репозиторий:
```shell
git clone https://github.com/TVP-Support/yt2vk.git
```Перейдите в директорию проекта:
```shell
cd yt2vk
```Установите и активируйте виртуальное окружение:
```shell
python -m venv env && . ./env/bin/activate
```Установите все необходимые зависимости для работы программы:
```shell
pip install -r requirements.txt
```### Шаг 2. Создание файла .env
Перед началом использования программы необходимо создать файл `.env` в корневой директории проекта. Для этого можно скопировать содержимое файла `example.env`, находящегося в корневой директории, в новый файл `.env` или воспользуйтесь этой командой:
```shell
cp example.env .env
```Файл `.env` содержит конфиденциальные данные, такие как ключи API, пароли и токены. Никогда не публикуйте файл `.env` в открытом доступе. Проверьте, что файл `.env` содержит все необходимые переменные, необходимые для работы программы, включая `DATABASE_URL`, в котором указывается путь к базе данных.
### Шаг 3. Добавление ссылок на каналы
Для начала, необходимо добавить ссылки на каналы в файл `urls.txt`. Каждая новая строка в этом файле представляет собой подписку на канал. В каждой строке может быть ссылка на канал, ссылка на видео, id канала или название канала. Примеры возможных форматов строк:
```text
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`, введя следующую команду в терминале, находясь в корневой директории проекта:
```shell
python add_subscription.py
```Эта команда запустит функцию `first_run()`, которая создаст подключение к базе данных, создаст таблицу `subscriptions`, и добавит в базу данных все новые каналы, указанные в файле `urls.txt`.
Если добавление прошло успешно, вы увидите сообщения об успешном добавлении данных в базу данных в консоли. Если в процессе добавления возникли ошибки, программа выведет сообщение об ошибке в консоли.
### Шаг 5: Получение ключа доступа сообщества
[Документация. Права доступа для токена сообщества](https://vk.com/dev/permissions?f=2.%20%D0%9F%D1%80%D0%B0%D0%B2%D0%B0%20%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0%20%D0%B4%D0%BB%D1%8F%20%D1%82%D0%BE%D0%BA%D0%B5%D0%BD%D0%B0%20%D1%81%D0%BE%D0%BE%D0%B1%D1%89%D0%B5%D1%81%D1%82%D0%B2%D0%B0)
1. Создайте Standalone-приложение на сайте VK Developers: .
2. Зайдите в настройки созданного приложения и скопируйте его `client_id`.
3. Сформируйте ссылку для авторизации в сообществе или воспользуйтесь этой ссылкой, подставив свой `CLIENT_ID`:
- Замените {CLIENT_ID} на client_id вашего Standalone-приложения
- Замените {SCOPE} на список требуемых прав доступа через запятую (например, video,wall,offline)4. Откройте сформированную ссылку в браузере и авторизуйтесь. После этого вы будете перенаправлены на URI-адрес в адресной строке которого будет содержаться ключ доступа `access_token`. Будьте внимательны при копировании, потому что `access_token` находится в середине ссылки.
5. Сохраните полученный ключ доступа и ID сообщества в файле `.env`. Например:
```dotenv
ACCESS_TOKEN=<ваш ключ доступа>
GROUP_ID=
```### Шаг 6: Запуск приложения
Запустите файл `main.py`, введя следующую команду в терминале, находясь в корневой директории проекта:
```python
python main.py
```Приложение будет запущено и начнет работу. Оно будет периодически получать новые видео с каналов, указанных в базе данных, и публиковать их в вашем сообществе VK.
Вы можете изменить настройки приложения, указав другой интервал времени для проверки новых видео или другие настройки публикации. Для этого отредактируйте соответствующие поля в файле .env.