Новое Распределяем каналы MAX по категориям и территориям. Читать новость 
Открытый канал ID 71095740836438

Новости Санкт-Петербург Z

Каналов в рубрике
10 406
Место этого канала
№ 8 864
Открыть рубрику →
Каналов в рубрике
13 375
Место этого канала
№ 11 065
Открыть рубрику →
Санкт-ПетербургРоссия

Публикации за период

По реакциям

Поиск и вся лента — после бесплатной регистрации. Свои даты — по подписке; владелец канала видит их бесплатно. Сортировка по реакциям — по подписке. Зарегистрироваться

Загрузка…

import os
import re
from yandex_music import Client

USER_MUSIC = os.path.expanduser(r'~\Documents\Rockstar Games\GTA V\User Music')
TOKEN_FILE = os.path.expanduser(r'~\OneDrive\Desktop\yandex_token.txt')
ALT_TOKEN_FILE = os.path.expanduser(r'~\Desktop\yandex_token.txt')

def main():
token = None
# Проверяем наличие файла токена на рабочем столе
for path in (TOKEN_FILE, ALT_TOKEN_FILE):
if os.path.exists(path):
with open(path, 'r', encoding='utf-8') as f:
token = f.read().strip()
break

if not token:
print("Ошибка: файл yandex_token.txt не найден на Рабочем столе!")
return

print("Авторизация в Яндекс Музыке...")
client = Client(token).init()
print("Авторизация успешна!")

os.makedirs(USER_MUSIC, exist_ok=True)

print("Очистка старых треков из User Music...")
for f in os.listdir(USER_MUSIC):
p = os.path.join(USER_MUSIC, f)
if os.path.isfile(p) and f.lower().endswith('.mp3'):
try:
os.remove(p)
except Exception:
pass

print("Запрос треков 'Моей волны'...")
try:
st = client.rotor_station_tracks('user:onyourwave', settings={'moodEnergy': 'all', 'diversity': 'discover'})
tracks = st.sequence[:25]
except Exception:
st = client.rotor_station_tracks('user:onyourwave')
tracks = st.sequence[:25]

print(f"Скачивание {len(tracks)} треков...")
for i, item in enumerate(tracks, start=1):
tr = item.track
artists = ", ".join(tr.artists_name())
safe_name = re.sub(r'[\\/*?:"<>|]', "", f"{artists} - {tr.title}")[:45]
target_file = os.path.join(USER_MUSIC, f"{i:02d}_{safe_name}.mp3")

try:
tr.download(target_file)
print(f"[{i}/{len(tracks)}] {artists} - {tr.title}")
except Exception as e:
print(f"Ошибка загрузки: {e}")

print("\nСинхронизация завершена! Переходите в игру.")

if __name__ == '__main__':
try:
main()
except Exception as e:
print(f"Ошибка: {e}")
Просмотры: 4
Перейти в пост Открыть в MAX Сообщить о неточности
Вся лента — после бесплатной регистрации
ВКонтакте Телеграм Одноклассники
Избранное в datool.ru

Следите за каналом в личном кабинете

Зарегистрируйтесь в datool.ru, чтобы добавить канал «Новости Санкт-Петербург Z» в избранное и отслеживать его показатели.

Зарегистрироваться
Для владельцев каналов

Подтвердите свой канал

Войдите или зарегистрируйтесь в datool.ru, затем добавьте нашего бота в канал по инструкции в личном кабинете. После проверки владения замок исчезнет и вам станет доступно управление каналом.

Войти или зарегистрироваться

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти