Загрузка...

Видео на аватарку для Telegram

Тема в разделе Python создана пользователем Sad0w 2 мар 2025. 259 просмотров

  1. Sad0w
    Sad0w Автор темы 2 мар 2025 51 27 май 2023
    Всем привет. Недавно, листая TikTok, увидел, как человек разделил видео на кадры и установил их в качестве своей аватарки в Telegram. Я вдохновился этим и написал этот код

    Зависимости
    telethon
    opencv-python

    Python
    from telethon.sync import TelegramClient
    from telethon.tl.types import InputPhoto
    from telethon.tl.functions.photos import UploadProfilePhotoRequest, DeletePhotosRequest

    from pathlib import Path

    import cv2
    import time
    import json
    import logging

    logging.basicConfig(level=logging.INFO)

    with open("settings.json", encoding="UTF-8") as f:
    settings = json.load(f)

    client = TelegramClient("Session",
    settings["api_id"], settings["api_hash"],
    system_version="4.16.30-vxCUSTOM",
    app_version="10.14.0",
    device_model="Windows")

    def main():
    video_path = input("Введите путь до видео >> ")
    delete_avs = input("Удалить все предыдущие аватарки? (Y/N) >> ").lower() == "y"

    client.start()

    if delete_avs:
    delete_avatars()
    logging.info("Все предыдущие аватарки удалены")

    if not exists_file(video_path):
    logging.info("Видео по данному пути не найдено")
    client.disconnect()
    return

    cap = cv2.VideoCapture(video_path)
    frame_count = 0

    while True:
    res, frame = cap.read()

    if not res:
    break

    _, buffer = cv2.imencode(".jpg", frame)

    file = client.upload_file(buffer.tobytes(), file_name="ava.jpg")
    client(UploadProfilePhotoRequest(file=file))

    frame_count += 1

    time.sleep(settings["delay"])

    cap.release()

    logging.info(f"Загружено {frame_count} кадров")

    client.disconnect()

    def delete_avatars():
    photos = client.get_profile_photos("me")

    if photos:
    input_photos = [
    InputPhoto(
    photo.id,
    photo.access_hash,
    photo.file_reference
    ) for photo in photos
    ]

    client(DeletePhotosRequest(input_photos))

    def exists_file(file_path: str) -> bool:
    path = Path(file_path)
    return path != "" and path.exists()

    if __name__ == "__main__":
    main()
    Код
    {
    "api_id": 0,
    "api_hash": "",
    "delay": 5
    }


    api_id и api_hash можно получить на официальном сайте Telegram ( https://my.telegram.org/auth )
    delay - это задержка на загрузку аватарки, указывается в секундах. Оптимальным для меня вариантом оказалось 5 секунд​
     
  2. ЛевыйТип
    Раньше что то похожее было популярно ( Ава в виде часов менялась каждый час)
     
    1. Sad0w Автор темы
  3. Нинтендо
    Нинтендо 2 мар 2025 I was tryna beat a case 5955 12 сен 2021
    :anime_hi: пример работы бы в тему залить
     
    1. Sad0w Автор темы
      Нинтендо, я тестировал задержку и поймал кд на 10 минут, поэтому без примера работы. позже может, как руки дойдут, сделаю
  4. SssnubSssoo
    SssnubSssoo 2 мар 2025 Статус 77 10 янв 2020
    telethon не стремно юзать? там с 2fa акк отлетит
     
    1. Sad0w Автор темы
    2. SssnubSssoo
      SssnubSssoo, а возможно и без него тоже
  5. MALWARE
    MALWARE 2 мар 2025 мяукаю 12 039 12 мар 2021
    во-первых акк отлетит быстро из-за спама, во-вторых акк отлетит быстро из-за telethon'a
     
    1. Посмотреть предыдущие комментарии (4)
    2. greshnikov
      Sad0w, да это нормально, у меня тоже проблем не было долгое время, а потом че то гады захожу в тг а там введите номер.. Ну я сильно не обижаюсь на них, но пашок конечно :2011_tiDebil:
    3. Sad0w Автор темы
      greshnikov, ну незнаю-незнаю, месяц уже на хосте софт у меня, все в порядке до сих пор
Top
Загрузка...