Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Обновление UID в онлайн вещании

Ответить
Настройки темы
CMD/BAT - [решено] Обновление UID в онлайн вещании

Пользователь


Сообщения: 86
Благодарности: 15

Профиль | Отправить PM | Цитировать


Имеется вот такой адрес потока
Код: Выделить весь код
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.

Отправлено: 11:38, 28-01-2013

 

Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


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

Отправлено: 12:11, 28-01-2013 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 86
Благодарности: 15

Профиль | Отправить PM | Цитировать


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

Отправлено: 16:20, 28-01-2013 | #3


Пользователь


Сообщения: 86
Благодарности: 15

Профиль | Отправить PM | Цитировать


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

Отправлено: 09:07, 30-01-2013 | #4


Старожил


Сообщения: 415
Благодарности: 257

Профиль | Отправить PM | Цитировать


Для работы скрипта нужен 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
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:23, 30-01-2013 | #5


Пользователь


Сообщения: 86
Благодарности: 15

Профиль | Отправить PM | Цитировать


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

Последний раз редактировалось deniskx, 30-01-2013 в 17:23.


Отправлено: 17:07, 30-01-2013 | #6


Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


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

Отправлено: 22:22, 20-12-2017 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Обновление UID в онлайн вещании

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Установка - Покупка онлайн WarrenMax007 Microsoft Windows 7 1 18-05-2012 08:18
Я.Онлайн 3.0.8 OSZone Software Новости программного обеспечения 0 28-07-2010 10:30
Интернет - онлайн-конференции Surround Программное обеспечение Windows 0 18-08-2009 21:01
синхронизация uid и gid в сети linderox Общий по Linux 0 05-06-2007 17:20
Маршрутизация при мультикаст-вещании на один из двух инерфейсов mvf Сетевые технологии 2 22-01-2007 14:25




 
Переход