Софт Бот для нахождения конкурсов Neverlose на Youtube V2

Начинающий
Статус
Оффлайн
Регистрация
27 Авг 2022
Сообщения
45
Реакции[?]
9
Поинты[?]
0
Бот для нахождения конкурсов Neverlose на Youtube V2
Пожалуйста, авторизуйтесь для просмотра ссылки.
Пожалуйста, авторизуйтесь для просмотра ссылки.
В config.py вставте токен и токен телеграмма
Зайдите на
Пожалуйста, авторизуйтесь для просмотра ссылки.
.(Не реклама)
В верхнем правом углу экрана нажмите на название текущего проекта, затем выберите нужный проект из списка или создайте новый проект, если необходимо.
После выбора проекта в левом верхнем углу экрана нажмите на иконку "Навигация по меню" (три горизонтальные полосы).
В боковом меню выберите "API и услуги".
В разделе "API и услуги" нажмите на "Учетные данные".
Теперь на странице "Учетные данные" для выбранного проекта. Здесь вы можете создать новый ключ API
А как получить токен Телеграмм не буду объяснять потому что это легче легкого
открывает cmd переходим в папку и прописываем: main.py
1680473612199.png
1.Почему я указал 10 вышло только 6? потому что бот ищет актуальные и только с розыгрышами и их может быть меньше
2.Бот не запускается если бот не запускается то попробуйте прописать pip install pycryptodome
даже у меня выходят апдейты быстрее чем у neverlose
Для просмотра содержимого вам необходимо авторизоваться.

Python:
import googleapiclient.discovery
from datetime import datetime, timedelta
from googleapiclient.discovery import *
from telegram import Update, InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Updater, CommandHandler, CallbackContext, MessageHandler, Filters
from config import TOKEN, YOUTUBE_API_KEY

api_version = "v3"
query = "NEVERLOSE SUB GIVEAWAY"

def search_youtube_videos(query, max_results):
    youtube = googleapiclient.discovery.build("youtube", api_version, developerKey=YOUTUBE_API_KEY)

    three_days_ago = datetime.utcnow() - timedelta(days=3)
    three_days_ago_iso = three_days_ago.isoformat("T") + "Z"

    request = youtube.search().list(
        part="id,snippet",
        type="video",
        q=query,
        videoDefinition="any",
        maxResults=50,
        publishedAfter=three_days_ago_iso,
        fields="items(id(videoId),snippet(title,channelTitle))"
    )

    response = request.execute()
    video_links = []

    query_words = query.upper().split()

    for item in response["items"]:
        title = item["snippet"]["title"].upper()
        if all(word in title for word in query_words):
            video_id = item["id"]["videoId"]
            video_url = f"https://www.youtube.com/watch?v={video_id}"
            video_links.append(video_url)
            if len(video_links) == max_results:
                break

    return video_links

def start(update: Update, context: CallbackContext) -> None:
    update.message.reply_text("Введите количество каналов, которые вы хотите получить (например, 20):")

def get_channels(update: Update, context: CallbackContext) -> None:
    try:
        max_results = int(update.message.text)

        if max_results < 1 or max_results > 50:
            update.message.reply_text("Введите число от 1 до 50:")
            return

        video_links = search_youtube_videos(query, max_results)

        keyboard = []

        for link in video_links:
            link = link.strip()
            keyboard.append([InlineKeyboardButton("Канал", url=link)])

        reply_markup = InlineKeyboardMarkup(keyboard)
        update.message.reply_text("Ниже представлены найденные каналы:", reply_markup=reply_markup)

    except ValueError:
        update.message.reply_text("Введите корректное число:")

def main():
    updater = Updater(TOKEN)

    dispatcher = updater.dispatcher
    dispatcher.add_handler(CommandHandler("start", start))
    dispatcher.add_handler(MessageHandler(Filters.text & ~Filters.command, get_channels))

    updater.start_polling()
    updater.idle()

if __name__ == "__main__":
    main()


 
Последнее редактирование:
Мэйню тинкера
Участник
Статус
Оффлайн
Регистрация
24 Янв 2019
Сообщения
887
Реакции[?]
327
Поинты[?]
124K
Браво! Белиссимо! Вау! Бис! Сударь, как же вы до такого додумались?
 
Happy new
Участник
Статус
Оффлайн
Регистрация
28 Май 2019
Сообщения
1,010
Реакции[?]
307
Поинты[?]
49K
Как по мне, когда сохранялось в файл, было как-то лучше, там можно было даже бы прикрутить автоматизацию на эти ссылки
 
Начинающий
Статус
Оффлайн
Регистрация
27 Авг 2022
Сообщения
45
Реакции[?]
9
Поинты[?]
0
Как по мне, когда сохранялось в файл, было как-то лучше, там можно было даже бы прикрутить автоматизацию на эти ссылки
если хотите я могу сделать чтобы бот высылал вам файл
 
Начинающий
Статус
Оффлайн
Регистрация
25 Ноя 2021
Сообщения
22
Реакции[?]
59
Поинты[?]
1K
1680509361987.png
все установил один хуй ругается
 
Начинающий
Статус
Оффлайн
Регистрация
5 Апр 2021
Сообщения
47
Реакции[?]
0
Поинты[?]
0
Такое чувство, что библиотека "pycryptodome" просто сломана. Может в этом дело?
 
ааа фурре
Пользователь
Статус
Оффлайн
Регистрация
9 Июл 2022
Сообщения
747
Реакции[?]
129
Поинты[?]
18K
1682169678317.png
пол жизни ебал мозг по апи гугла, пол мозга в крипто
 
Нестандартное звание?
Пользователь
Статус
Оффлайн
Регистрация
23 Июл 2021
Сообщения
407
Реакции[?]
81
Поинты[?]
2K
Чем-то напоминает у chat gpt, но идея думаю не плохая :)
 
ааа фурре
Пользователь
Статус
Оффлайн
Регистрация
9 Июл 2022
Сообщения
747
Реакции[?]
129
Поинты[?]
18K
даёт ошибки каждые 2 секунды, дайте сразу готовый юзер бота
 
Сверху Снизу