Загрузка...

Autostatus in VK and autobio in Telegram with the current Spotify song

Thread in Python created by MALWARE May 8, 2022. (bumped Jul 15, 2025) 4478 views

  1. MALWARE
    MALWARE Topic starter May 8, 2022 мяукаю 11,879 Mar 12, 2021
    [IMG]
    [IMG]
    Python
    from spotipy.oauth2 import SpotifyOAuth
    import spotipy
    import vk_api
    from time import sleep

    config = {
    'vk-default-status': "Статус в ВК, когда в Spotify ничего не играет",
    'telegram-default-status': 'О себе в Telegram, когда в Spotify ничего не играет',
    'status-update-timeout': 60,
    'spotify-client-id': "",
    'spotify-client-secret': "",
    'spotify-redirect-uri': "",
    'spotify-username': "as67lwic16uszxqpd6rbfimol",
    'vk-token': "token",
    'vk-online-when-listen-spotify': True,
    'use-telegram': True,
    'telegram-api-id': 1,
    'telegram-api-hash': ''
    }

    if config['use-telegram']:
    from telethon.tl.functions.account import UpdateProfileRequest
    from telethon.sync import TelegramClient
    telegram = TelegramClient('telegram', config['telegram-api-id'], config['telegram-api-hash']).start()

    spotify = spotipy.Spotify(auth_manager=SpotifyOAuth(scope="user-read-playback-state user-library-read", client_id=config['spotify-client-id'], client_secret=config['spotify-client-secret'], redirect_uri=config['spotify-redirect-uri'], username=config['spotify-username']))
    api = vk_api.VkApi(token=config['vk-token']).get_api()
    current_status = api.status.get()['text']

    def change_status(status):
    if not status == current_status:
    api.status.set(text=status[:140])
    if config['vk-online-when-listen-spotify']: api.account.setOnline(voip=1)
    print('Статус в VK обновлен')
    if config['use-telegram']:
    telegram(UpdateProfileRequest(about=status[:70]))
    print('Статус в Telegram обновлен')
    print(status)
    def default_status():
    api.status.set(text=config['vk-default-status'][:140])
    print('Статус в VK обновлен')
    if config['use-telegram']:
    telegram(UpdateProfileRequest(about=config['telegram-default-status'][:70]))
    print('Статус в Telegram обновлен')
    print('Установлен обычный статус')
    def calculate_minutes(ms): return str(int(((ms / (1000*60)) % 60)))
    def calculate_seconds(ms): return str(int((ms / 1000) % 60)) if len(str(int((ms / 1000) % 60))) > 1 else '0'+str(int((ms / 1000) % 60))
    while True:
    current_playing = spotify.current_user_playing_track()
    if current_playing is None or current_playing["currently_playing_type"] == "ad":
    default_status()
    sleep(int(config['status-update-timeout'])*2)
    continue
    play_emoji = '▶' if current_playing['is_playing'] == True else '⏸'
    change_status(play_emoji+'Слушаю Spotify: '+current_playing["item"]["artists"][0]["name"]+' — '+current_playing["item"]["name"]+' ('+calculate_minutes(current_playing['progress_ms'])+':'+calculate_seconds(current_playing['progress_ms'])+'/'+calculate_minutes(current_playing['item']['duration_ms'])+':'+calculate_seconds(current_playing['item']['duration_ms'])+')')
    sleep(int(config['status-update-timeout']))
    Использование: Нужно заполнить конфиг, затем, после запуска, войти в Spotify в браузере и войти в Telegram в консоли

    Конфиг:

    • vk-default-status - Статус в ВК, когда в Spotify ничего не играет
    • telegram-default-status - О себе в Telegram, когда в Spotify ничего не играет
    • status-update-timeout - Количество секунд, спустя которое нужно обновить статус
    • spotify-client-id - Client ID приложения Spotify
    • spotify-client-secret - Client secret приложения Spotify
    • spotify-redirect-uri - redirect uri приложения Spotify
    • spotify-username - Часть ссылки на ваш профиль Spotify
    • vk-token - Токен ВК
    • vk-online-when-listen-spotify - Нужно ли делать вас онлайн в ВК, когда включен Spotify (True/False)
    • use-telegram - Нужно ли обновлять био в телеграм (поставьте False, если хотите автостатус только в ВК)
    • telegram-api-id - API ID приложения Telegram
    • telegram-api-hash - API hash приложения Telegram


    1. Заходим на https://developer.spotify.com/dashboard/, если нужно, авторизуемся. Скорее всего, понадобится ***.
    2. Создаем приложение[IMG], вводим любое имя и описание, ставим галочку
      [IMG]
    3. Нажимаем на show client secret[IMG]
    4. Два значения уже получили. Теперь нажимаем edit settings[IMG]
    5. Вводим http://localhost:8888/callback в redirect url. (в конфиге тоже)[IMG]
    6. Для получения ссылки на свой профиль заходим на https://open.spotify.com/, для пользователей из России понадобится ***.
    7. [IMG]
    8. Копируем значение после user/[IMG]. Это spotify-username.

    1. Заходим на https://my.telegram.org/, авторизуемся
    2. [IMG]
    3. Создаем приложение
    4. Вот и данные
     
  2. Superillegal
    Superillegal May 8, 2022 medium demon 1353 Dec 18, 2020
    прикольно :finger_up:
     
  3. Illumate
    Illumate May 8, 2022 2415 May 15, 2019
    MALWARE, молодец, постарался, получилось классно, только наверное я бы убрал из статуса секунды, а то получается слишком частое обновление, названия трека и исполнителя хватает вполне)
     
  4. cidll
    cidll May 8, 2022 Banned 1046 Sep 5, 2021

    из-за этого рано или поздно вк будет ругаться
     
    1. MALWARE Topic starter
      cidll,
  5. СатанаПечётБлины
    СатанаПечётБлины May 8, 2022 Пожирающий трупы :duck_knife2: 6966 Apr 25, 2022
    чел от душы, на полном серьёзе искал искал скрипт автостатуса.
     
  6. WatchUrr
    привет, есть ли такое же с iTunes?
     
    1. View previous comments (5)
    2. MALWARE Topic starter
      WatchUrr, ну тут система получает трек из айтюнс, это немного не то. Придётся на своем пк хостить, неудобно будет..
    3. MALWARE Topic starter
      Dzhizus, от вк можно получать, только если есть статус)))
  7. Dictatura
    Dictatura Jul 20, 2022 яндекс плюс 49р - 3 месяца https://lolz.live/threads/8874843/ 13,942 Nov 25, 2017
    РЕСПЕКТ ЗА СТАРАНИНЕ И ЗА КОД
     
  8. cidll
    cidll Aug 3, 2022 Banned 1046 Sep 5, 2021
    Немного переделал код(написал пару try/except:peka:), добавил говнокода. Теперь статус меняется почти сразу, после переключения трека, не флудит сменой статуса если спотик выключен. Убрал статус в тг так как он мне не нужен. Убрал принты все, они мне показались ненужными
    Python
    # Cорян за говнокод, но теперь работает как часики и  не отключается скрипт через часик работы

    from spotipy.oauth2 import SpotifyOAuth
    import spotipy
    import vk_api
    from time import sleep

    config = {
    'vk-default-status': "",
    'spotify-client-id': "",
    'spotify-client-secret': "",
    'spotify-redirect-uri': "",
    'spotify-username': "",
    'vk-token': "",
    'vk-online-when-listen-spotify': True,
    }

    spotify = spotipy.Spotify(auth_manager=SpotifyOAuth(scope="user-read-playback-state user-library-read", client_id=config['spotify-client-id'], client_secret=config['spotify-client-secret'], redirect_uri=config['spotify-redirect-uri'], username=config['spotify-username']))
    api = vk_api.VkApi(token=config['vk-token']).get_api()
    current_status = api.status.get()['text']

    def change_status(status):
    try:
    if not status == current_status:
    api.status.set(text=status[:140])
    if config['vk-online-when-listen-spotify']: api.account.setOnline(voip=1)
    except:
    print()

    def default_status():
    try:
    s = api.status.get()['text']
    if s == config['vk-default-status']:
    return
    else:
    api.status.set(text=config['vk-default-status'][:140])
    except:
    print()

    while True:
    try:
    current_playing = spotify.current_user_playing_track()
    if current_playing is None or current_playing["currently_playing_type"] == "ad":
    default_status()
    sleep(10)
    continue

    s = api.status.get()['text']
    play_emoji = '' if current_playing['is_playing'] == True else ''

    if s == play_emoji+'Слушаю Spotify: '+current_playing["item"]["artists"][0]["name"]+' — '+current_playing["item"]["name"]:
    sleep(5)
    else:
    play_emoji = '' if current_playing['is_playing'] == True else ''
    change_status(play_emoji+'Слушаю Spotify: '+current_playing["item"]["artists"][0]["name"]+' — '+current_playing["item"]["name"])
    except:
    print()
     
    1. View previous comments (1)
    2. cidll
      disa, pip install spotipy
    3. disa
      cidll, я сделал, поэтому и спрашиваю чо за хуйня, если модуль установил
    4. cidll
      disa, значит не установил
  9. Forex552
    Forex552 Aug 13, 2022 13 Jun 12, 2021
    MALWARE как с телефона так сделать? Компа нету, сгорел(
     
    1. View previous comments (2)
    2. MALWARE Topic starter
      Forex552, у тебя есть дедик?
    3. MALWARE Topic starter
      Forex552, а хотя можно на сайтах каких-то хостить
    4. Forex552
      MALWARE, нет, но я поищу на сайтах как ты говоришь
  10. x202xx
    x202xx Aug 29, 2022 0 Feb 21, 2020
     
    1. MALWARE Topic starter
      x202xx, актуальный
  11. SashaKrim
    SashaKrim Nov 29, 2022 102 Jan 5, 2020
    Вк как-то можно вырезать?
     
  12. Стрей
    Стрей Mar 12, 2023 $$$ 4837 Jan 14, 2023
    Годно:duck_like:
     
  13. sk11z
    sk11z Nov 12, 2023 1069 Sep 20, 2017
    с яндекс музыкой вариант ?
     
    1. cidll
    2. MALWARE Topic starter
      sk11z, там другое апи
  14. unique
    unique Apr 22, 2024 hi... 272 Jan 15, 2018
    Кайф тема, но код по глазам бьет...
     
  15. БИЛЛИНОГАМИ
    БИЛЛИНОГАМИ Jun 6, 2024 Банки|Турция|Верификации|Биржи - lzt.lol/TUR :zerotwo:
    Ебать для телеграмма имба полная , а под Яндекс музыку можно как-то?
     
    1. MALWARE Topic starter
  16. ART1X
    ART1X Apr 14, 2025 excellent is our standard 687 Nov 24, 2016
    для тг тема прям, спасиьо давно искал что то такое
     
  17. Olympia
    Olympia Apr 14, 2025 378 Sep 24, 2020
    Прикольно очень , вот бы это реализовать через тг бота
     
    1. View previous comments (1)
    2. Olympia
      MALWARE, аээээээээээээ ну можно же наверное
    3. MALWARE Topic starter
      Olympia, ээээээ ну это типа не бот?
    4. Olympia
      MALWARE, аааааа я глупый
Loading...
Top