Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/theextensional/yt2vk


https://github.com/theextensional/yt2vk

python vk vk-api youtube

Last synced: 23 days ago
JSON representation

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.