Загрузка...

Автостатус в ВК и автобио в Telegram c текущей песней Spotify

Тема в разделе Python создана пользователем MALWARE 8 май 2022. (поднята 2 июн 2025 в 15:36) 4312 просмотров

Загрузка...
  1. MALWARE
    MALWARE Автор темы 8 май 2022 мяукаю 11 481 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. Вот и данные
     
    8 май 2022 Изменено
  2. Superillegal
    Superillegal 8 май 2022 medium demon 1358 18 дек 2020
    прикольно :finger_up:
     
  3. Illumate
    Illumate 8 май 2022 2415 15 май 2019
    MALWARE, молодец, постарался, получилось классно, только наверное я бы убрал из статуса секунды, а то получается слишком частое обновление, названия трека и исполнителя хватает вполне)
     
  4. cidll
    cidll 8 май 2022 Заблокирован(а) 1049 5 сен 2021

    из-за этого рано или поздно вк будет ругаться
     
    1. MALWARE Автор темы
      cidll,
  5. СатанаПечётБлины
    СатанаПечётБлины 8 май 2022 Пожирающий трупы :duck_knife2: 6659 25 апр 2022
    чел от душы, на полном серьёзе искал искал скрипт автостатуса.
     
  6. WatchUrr
    привет, есть ли такое же с iTunes?
     
    1. Посмотреть предыдущие комментарии (5)
    2. MALWARE Автор темы
      WatchUrr, ну тут система получает трек из айтюнс, это немного не то. Придётся на своем пк хостить, неудобно будет..
    3. MALWARE Автор темы
      Dzhizus, от вк можно получать, только если есть статус)))
  7. Dictatura
    Dictatura 20 июл 2022 Чики пуки :flexing_dog: 13 814 25 ноя 2017
    РЕСПЕКТ ЗА СТАРАНИНЕ И ЗА КОД
     
  8. cidll
    cidll 3 авг 2022 Заблокирован(а) 1049 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()
     
    3 авг 2022 Изменено
    1. Посмотреть предыдущие комментарии (1)
    2. disa
      cidll, я сделал, поэтому и спрашиваю чо за хуйня, если модуль установил
    3. cidll
      disa, значит не установил
  9. Forex552
    Forex552 13 авг 2022 13 12 июн 2021
    MALWARE как с телефона так сделать? Компа нету, сгорел(
     
    1. Посмотреть предыдущие комментарии (2)
    2. MALWARE Автор темы
      Forex552, у тебя есть дедик?
    3. MALWARE Автор темы
      Forex552, а хотя можно на сайтах каких-то хостить
    4. Forex552
      MALWARE, нет, но я поищу на сайтах как ты говоришь
  10. x202xx
    x202xx 29 авг 2022 0 21 фев 2020
     
  11. SashaKrim
    SashaKrim 29 ноя 2022 102 5 янв 2020
    Вк как-то можно вырезать?
     
  12. Стрей
    Стрей 12 мар 2023 $$$ 4837 14 янв 2023
    Годно:duck_like:
     
  13. sk11z
    sk11z 12 ноя 2023 1069 20 сен 2017
    с яндекс музыкой вариант ?
     
    1. cidll
    2. MALWARE Автор темы
      sk11z, там другое апи
  14. unique
    unique 22 апр 2024 hi... 272 15 янв 2018
    Кайф тема, но код по глазам бьет...
     
  15. биллиногами
    биллиногами 6 июн 2024 Банки|Турция|Верификации|Биржи - lzt.lol/TUR :zerotwo:
    Ебать для телеграмма имба полная , а под Яндекс музыку можно как-то?
     
    1. MALWARE Автор темы
  16. ART1X
    ART1X 14 апр 2025 excellent is our standard 684 24 ноя 2016
    для тг тема прям, спасиьо давно искал что то такое
     
  17. Olympia
    Olympia 14 апр 2025 без статуса 312 24 сен 2020
    Прикольно очень , вот бы это реализовать через тг бота
     
    1. Посмотреть предыдущие комментарии (1)
    2. Olympia
      MALWARE, аээээээээээээ ну можно же наверное
    3. MALWARE Автор темы
      Olympia, ээээээ ну это типа не бот?
Top