Загрузка...

Video on the Avatar for Telegram

Thread in Python created by Sad0w Mar 2, 2025. 265 views

  1. Sad0w
    Sad0w Topic starter Mar 2, 2025 51 May 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()
    Code
    {
    "api_id": 0,
    "api_hash": "",
    "delay": 5
    }


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