![]() |
![]() |
#2 |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Нужно с API разбираться
|
![]() |
![]() |
![]() |
#3 |
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1030 ![]() ![]() ![]() |
![]()
Там есть какой-то watch.js который регулярно общается с яндексом в процессе..
Кажется наиболее простой вариант - iOS -> airplay |
![]() |
![]() |
![]() |
#4 |
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1030 ![]() ![]() ![]() |
![]()
На текущий момент мне известно:
1. Музыка в формате mp3 2. Треки отдельные, доступны через https. wget съедает на отлично. Не знаю, стоит ли выкладывать полный пример ссылки, но на первый взгляд она содержит пару идентификаторов сессии и некий track-id Вот кусок из ссылки /f3b4882c83afdfbb21b4db3ca3b60579/000541a400b71bea/music/6/8/data-0.0:33488662662:5086980? Также сайт накидывает ведерко печенек. Но они видимо не нужны, ибо wget с роутера отработал без ошибок. Скрипты для меня нечитабельны... Шикарное радио могло бы получится. |
![]() |
![]() |
![]() |
#5 |
Moderator
Регистрация: 20.07.2014
Адрес: МСК
Сообщений: 991
Вес репутации: 1030 ![]() ![]() ![]() |
![]()
Кстати о птичках... Я опять погуглил и нашел что еще в 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
Вес репутации: 1030 ![]() ![]() ![]() |
![]()
Хм.. Залез в ява консоль на работающем яндекс.радио
Развернуть для просмотраКод:
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,616
Вес репутации: 9821 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Попробовал запустить в ubuntu питоновский скрипт
ошибка в 14 строке скрипта. Где взять модуль BeautifulStoneSoup и как его подключить, я не знаю Я с питоном сталкиваюсь , можно сказать в первый раз. Так что не знаю что мне нужно сделать , что бы исправить ошибку P.S. Загуглил и как всегда все просто sudo apt-get install python-beautifulsoup |
![]() |
![]() |
![]() |
#9 | |
Administrator
Регистрация: 12.04.2010
Адрес: Москва
Сообщений: 9,616
Вес репутации: 9821 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]()
Модуль установил, но все равно не получается запустить
Цитата:
|
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Регистрация: 22.10.2015
Адрес: Там где сосны и песок
Сообщений: 1,534
Вес репутации: 1600 ![]() ![]() ![]() ![]() ![]() ![]() |
![]() Цитата:
![]()
__________________
Читаю ваши мысли по аватару ... |
|
![]() |
![]() |
![]() |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|