PDA

Показать полную графическую версию : [решено] Обновление UID в онлайн вещании


deniskx
28-01-2013, 11:38
Имеется вот такой адрес потока http://stream2.radiodacha.ru:9000/radiodacha_64?type=.mp3&UID=569D5B7EC51BDF05D3A540E90BD77948 Значение UID меняется раз в двое суток, а со старым значением выдается заглушка, призывающая слушать только с сайта. Новый UID легко находится в исходном коде страницы http://www.radiodacha.ru/player.htm
var flashvars = {uid: '569D5B7EC51BDF05D3A540E90BD77948
Я добавил этот поток (AAC SBR 64 kbps там) в m3u плейлист и слушаю в foobar. Но вручную исправлять адрес мне начинает уже надоедать. Можно ли хоть как-то автоматизировать этот процесс? Что-то типа запустил батник и плейлист обновился. Вроде бы положение uid в тексте исходного кода неизменно (примерно 451 символ, или 9 строка, с 25 символа). Как-нибудь скопировать его и вставить в плейлист чтобы можно было. Плейлист m3u представляет из себя просто url адреса с новой строки и верхние строчки не меняются. Например
http://постоянная станция1
http://постоянная станция2
http://постоянная станция3
http://stream2.radiodacha.ru:9000/radiodacha_64?type=.mp3&UID=569D5B7EC51BDF05D3A540E90BD77948
http://здесь может быть новая станция
Вот как это я себе представляю:
curl http://www.radiodacha.ru/player.htm
скопировать из player.htm значение UID и заменить им значение UID в playlist.m3u
del player.htm
То есть нужно скопировать с 451 символа по 483 с одного файла и вставить в с 196 по 228 символы второго файла, если уж совсем примитивно. Но там есть правда табуляции и переносы строк. Или как-нибудь более интеллектуально находить UID.

Iska
28-01-2013, 12:11
неизменно (примерно 451 символ, или 9 строка, с 25 символа). »
Определитесь. Машине не скажешь «примерно». Нужны отличительные признаки, позволяющие однозначно определять искомое.

deniskx
28-01-2013, 16:20
Давайте будем считать положение неизменным. Длина UID 32 символа.
То есть 451-483 > 196-228
Я правда не знаю как учитываются переносы строк. Если учитывать строки, то:
player.htm 9 строка 25-57 символы > playlist.m3u 4 строка 62-94 символы.

deniskx
30-01-2013, 09:07
Что никто не знает?

Anonymоus
30-01-2013, 11:23
Для работы скрипта нужен wget и grep. Умеет как добавлять строку с радио в m3u-плейлист, так и заменять UID в уже существующей. Не забудьте поменять имя плейлиста на ваше, и, если в плейлисте используется юникод - сохранить скрипт в UTF-8 без BOM.


@Echo Off
SetLocal EnableDelayedExpansion
Set Playlist=playlist.m3u

:: Получаем страницу и вытягиваем UID
For /F "tokens=2 delims='" %%A In ('bin\wget "http://www.radiodacha.ru/player.htm" -O-^|bin\grep -Eo "uid: '[0-9A-Z]{32}'"') Do (Set UID=%%A)

:: Вписываем требуемое значение в m3u-плейлист
Find "radiodacha.ru" "%Playlist%">nul&&(
rem Если станция найдена - заменяем значение UID
For /F "usebackq eol= delims=" %%A In ("%Playlist%") Do (
Set Data=%%A
If Not "!Data:~,25!"=="http://stream2.radiodacha" (
Echo %%A>>"%Playlist%.tmp"
) Else (
Echo http://stream2.radiodacha.ru:9000/radiodacha_64?type=.mp3^&UID=%UID%>>"%Playlist%.tmp"
)
)
Del "%Playlist%" && Move "%Playlist%.tmp" "%Playlist%"
)||(
rem Если станции до этого не было в плейлисте, просто добавляем её в конец
Echo #EXTINF:-1,RadioDacha>>"%Playlist%"
Echo http://stream2.radiodacha.ru:9000/radiodacha_64?type=.mp3^&UID=%UID%>>"%Playlist%"
)
Exit


Архив со скриптом, тестовым плейлистом и необходимыми утилитами: http://rghost.ru/43413044

deniskx
30-01-2013, 17:07
Спасибо. Все отлично работает. На всякий случай перезалил на постоянное хранение в яндекс диск (http://yadi.sk/d/37V-jiuu2EVlC). Вдруг кому еще пригодится.

evggrig
20-12-2017, 22:22
всем привет. а эта фишка сейчас работает? UID с радио дача и прочих подобных станций не выдергивается. подскажите как пофиксить?




© OSzone.net 2001-2012