![]() |
|
|
#2 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Нужно с API разбираться
|
|
|
|
|
|
#3 |
|
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1032 ![]() ![]() ![]() |
Там есть какой-то watch.js который регулярно общается с яндексом в процессе..
Кажется наиболее простой вариант - iOS -> airplay |
|
|
|
|
|
#4 |
|
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1032 ![]() ![]() ![]() |
На текущий момент мне известно:
1. Музыка в формате mp3 2. Треки отдельные, доступны через https. wget съедает на отлично. Не знаю, стоит ли выкладывать полный пример ссылки, но на первый взгляд она содержит пару идентификаторов сессии и некий track-id Вот кусок из ссылки /f3b4882c83afdfbb21b4db3ca3b60579/000541a400b71bea/music/6/8/data-0.0:33488662662:5086980? Также сайт накидывает ведерко печенек. Но они видимо не нужны, ибо wget с роутера отработал без ошибок. Скрипты для меня нечитабельны... Шикарное радио могло бы получится. |
|
|
|
|
|
#5 |
|
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1032 ![]() ![]() ![]() |
Кстати о птичках... Я опять погуглил и нашел что еще в 2016 яндекс открыл API аудио сервисов:
https://yandex.ru/blog/yatechnologie...vedeniya-audio Ну, товарищи программисты, может подскажете реально ли консольный скрипт под linux/wrt запилить? Хотя меня больше интересует Яндекс Радио, чтобы не набивать треки вручную. Ну и еще пара ссылок: https://tech.yandex.ru/audio/ https://github.com/yandex/audio-js/issues/4 https://github.com/nvbn/python-yamusic/ |
|
|
|
|
|
#7 |
|
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1032 ![]() ![]() ![]() |
Хм.. Залез в ява консоль на работающем яндекс.радио
Развернуть для просмотраКод:
externalAPI.help()
Внешний интерфейс для расширений Яндекс.Музыки и Яндекс.Радио. Быстрая справка.
===============================================================================
Используемые форматы данных
---------------------------
Формат описания обложки:
Ссылка на обложку. Либо строка либо набор строк для составных обложек.
В ссылке присутствует подстрока "%%", которую требуется заменить на необходимое разрешение.
Доступны разрешения 30x30, 50x50, 80x80, 100x100, 200x200, 300x300, 400x400
Формат описания трека:
{String} title - название трека
{String} link - ссылка на трек
{Number} duration - длительность трека в секундах
{Boolean} liked - трек залайкан
{Boolean} disliked - трек задислайкан
{Array.<ExternalAPI~ArtistInfo>} artists - список исполнителей
{String} [version] - версия трека
{ExternalAPI~AlbumInfo} [album] - альбом трека
{ExternalAPI~CoverInfo} [cover] - обложка
Формат описания альбома:
{String} title - название альбома
{Number} year - год выпуска
{String} link - ссылка на альбом
{Array.<ExternalAPI~ArtistInfo>} artists - список исполнителей
{ExternalAPI~CoverInfo} [cover] - обложка
Формат описания исполнителя:
{String} title - имя исполнителя
{String} link - ссылка на исполнителя
{ExternalAPI~CoverInfo} [cover] - обложка
Формат описания плейлиста:
{String} title - название плейлиста
{String} owner - имя владельца плейлиста
{String} link - ссылка на плейлист
{ExternalAPI~CoverInfo} [cover] - обложка
Формат описания элементов управления:
index - возможность запускать воспроизведние трека по его индексу
next - возможность переключения на следующий трек
prev - возможность переключение на предудущий трек
shuffle - возможность включать шаффл
repeat - возможность включать режим повтора треков
like - возможность добавлять трек в избранное
dislike - возможность добавлять трек в чёрный список
Все поля могут принимать изначения из списка констант:
CONTROL_ENABLED - доступно
CONTROL_DISABLED - недоступно
CONTROL_DENIED - функция отсутствует
Формат описания временных метрик трека (все значения указываются в секундах):
{Number} position - позиция воспроизведения
{Number} duration - длительность трека
{Number} loaded - длительность загруженной части
Программный интерфейс
---------------------
Получение данных о треках и текущем источнике:
getCurrentTrack - данные о текущем треке
getNextTrack - данные о следующем треке
getPrevTrack - данные о предыдущем треке
getTracksList - данные о списке треков
getTrackIndex - индекс текущего трека в списке треков
getSourceInfo - данные о текущем источнике воспроизведения
populate(fromIndex, [after], [before], [ordered]) - подгрузка данных о треках в текущий список воспроизведения. В случае выставления флага ordered, треки будут загружаться с учётом порядка воспроизведения, а не положения в списке
Получение состояния плеера:
isPlaying - проверка, что плеер запущен и не на паузе
getControls - получение данных о доступности элементов управления
getShuffle - получение состояния шаффла (SHUFFLE_ON/SHUFFLE_OFF)
getRepeat - получение состояния повтора треков (REPEAT_NONE/REPEAT_ALL/REPEAT_ONE)
getVolume - получние текущей громкости
getProgress - получение данных о временных метриках трека
Управление плеером:
play([index]) - запуск воспроизведения трека с указанным индексом. Если индекс не указан, будет запущен текущий выбранный трек
next - переключение на следующий трек
prev - переключение на предыдущий трек
togglePause([state]) - поставить трек на паузу/снять паузу
toggleLike - добавить трек в избранное/удалить трек из избранного
toggleDislike - добавить трек в чёрный список/удалить трек из чёрного списка
toggleShuffle([state]) - переключить режим шаффла (SHUFFLE_ON/SHUFFLE_OFF)
toggleRepeat([state]) - переключить режим повтора треков (REPEAT_NONE/REPEAT_ALL/REPEAT_ONE)
setVolume(value) - установить громкость
toggleMute(state) - включит/выключить звук
setPosition(value) - установить позицию воспроизведения
Дополнительные команды:
navigate(url) - переход на страницу с указанным адресом. Адрес задаётся без протокола и домена
События
-------
Все события являются "чистыми" - в обработчик не передаётся никаких данных. Исключением является событие EVENT_ADVERT - в него передаются данные о рекламе, если она началась или false - если закончилась
EVENT_READY - готовность данного интерфейса
EVENT_STATE - изменение состояния плеера
EVENT_TRACK - смена трека
EVENT_ADVERT - воспроизведение рекламы
EVENT_CONTROLS - изменение состояния элементов управления (в т.ч. смены состояния шаффла и повтора треков)
EVENT_SOURCE_INFO - смена источника воспроизведения
EVENT_TRACKS_LIST - изменения списка треков
EVENT_VOLUME - изменение громкости
EVENT_PROGRESS - изменение временных метрик трека
undefined
[свернуть] Ввел в скрипт-консоль: externalAPI.next() - перешло на воспроизведение следующего трека.... Последний раз редактировалось Tohin; 25.08.2018 в 10:55. |
|
|
|
|
|
#8 |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Попробовал запустить в ubuntu питоновский скрипт
ошибка в 14 строке скрипта. Где взять модуль BeautifulStoneSoup и как его подключить, я не знаю Я с питоном сталкиваюсь , можно сказать в первый раз. Так что не знаю что мне нужно сделать , что бы исправить ошибку P.S. Загуглил и как всегда все просто sudo apt-get install python-beautifulsoup |
|
|
|
|
|
#9 | |
|
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,618
Вес репутации: 9824 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Модуль установил, но все равно не получается запустить
Цитата:
|
|
|
|
|
|
|
#10 | |
|
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1602 ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
__________________
Читаю ваши мысли по аватару ... |
|
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|