Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Обновление UID в онлайн вещании (http://forum.oszone.net/showthread.php?t=252513)

deniskx 28-01-2013 11:38 2076703

Обновление UID в онлайн вещании
 
Имеется вот такой адрес потока
Код:

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 2076724

Цитата:

Цитата deniskx
неизменно (примерно 451 символ, или 9 строка, с 25 символа). »

Определитесь. Машине не скажешь «примерно». Нужны отличительные признаки, позволяющие однозначно определять искомое.

deniskx 28-01-2013 16:20 2076946

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

deniskx 30-01-2013 09:07 2078281

Что никто не знает?

Anonymоus 30-01-2013 11:23 2078343

Для работы скрипта нужен 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 2078659

Спасибо. Все отлично работает. На всякий случай перезалил на постоянное хранение в яндекс диск. Вдруг кому еще пригодится.

evggrig 20-12-2017 22:22 2785942

всем привет. а эта фишка сейчас работает? UID с радио дача и прочих подобных станций не выдергивается. подскажите как пофиксить?


Время: 18:33.

Время: 18:33.
© OSzone.net 2001-