motofan logo
       
> 

Парсинг rpod.ru и прочих подкаст

Zorge.R
сообщение 16.8.2010, 15:01


Ветеран
Group Icon

Группа: System Administrators
Сообщений: 1 915
Регистрация: 4.10.2006
Из: рук в руки
Пользователь №: 101 800
Модель телефона: Note 9 Copper 512Gb
Прошивка: 1CR

Рейтинг: 2510



я обленился открывать страницу науки 2.0, а тут еще повод сделать все автоматом.

ссылка на rpod.ru имеет вид:

Код
http://rpod.ru/get/167833/120419/download/14_08_10_-_На_жару_взглянули_через_микроскоп__Наук.mp3


или
Код
http://rpod.ru/get/$PODCASTID/$TRACKID/download/$N.mp3


где
PODCASTID - ID публикации. (порядковый номер публикации)
TRACKID - ID конкретной записи в публикации. (порядковый номер записи)
N - имя файла.

разница между PODCASTID и TRACKID в том что первый, указывает на публикацию, второй на конкретную запись в этой публикации.

при этом N знать не нужно, достаточно обратиться по
Код
http://rpod.ru/get/$PODCASTID/$TRACKID/download/
и сервер выдаст нужный файл.

так же, страницу подкаста можно открыть по
Код
http://rpod.ru/$PODCASTID/
, на ней ссылка на запись идет в блоке
Код
<a title="Скачать" href="http://rpod.ru/get/$PODCASTID/$TRACKID/download/$N.mp3" class="size">10.6 Мб</a>


для примера, откроем
Код
http://rpod.ru/167833/


тут видно 3 записи, т.е.
Код
http://rpod.ru/get/167833/$TRACKID_1/download/

Код
http://rpod.ru/get/167833/$TRACKID_2/download/

Код
http://rpod.ru/get/167833/$TRACKID_3/download/


получается если имеем PODCASTID, можешь получить со страницы
Код
http://rpod.ru/get/$PODCASTID/

ссылку на запись, например
Код
http://rpod.ru/get/167833/120419/download/



ссылку на саму публикацию, можно взять со страницы публикаций, например
Код
http://nauka2-0.rpod.ru/


ID публикаций тут лежат в блоках:
Код
<a class="rpad" amber="post:167833" href="http://nauka2-0.rpod.ru/167833.html">На жару взглянули через микроскоп</a>

режем
Код
<a class="rpad" amber="post:

и все что после
Код
<a class="rpad" amber="post:NNNNNN


так же PODCASTID можно сграбить из ленты rss
там блоки такие:
Код
<link>http://nauka2-0.rpod.ru/167833.html</link>


так же есть код вставки плеера:

Spoiler:
Код
<object width="500" height="40" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="movie" value="http://s.rpod.ru/swf/playa.swf?xmlURL=http%3A%2F%2Fs.rpod.ru%2Fxml%2Faudio%2Fa120417.xml"></param><param name="allowfullscreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://s.rpod.ru/swf/playa.swf?xmlURL=http%3A%2F%2Fs.rpod.ru%2Fxml%2Faudio%2Fa120417.xml" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="40"></embed></object>
[close]


в котором используется только $TRACKID. плеер в данном случае получает полную ссылку из http://s.rpod.ru/xml/audio/a120417.xml где 120417 - TRACKID.
для того чтобы не выкачивать весь текст http://rpod.ru/get/$PODCASTID/, для получения ссылки, можно попробовать отпарсить http://s.rpod.ru/xml/audio/a$TRACKID.xml
Но там все одной строкой вида:

Spoiler:
Код
<core><player_settings padding='5,5,5,5' logo='rpod' preset_id='rpod_small' autoplay='0' /><playlist><item id='0'><title url='http://nauka2-0.rpod.ru/167833.html'>На жару взглянули через микроскоп</title><type>audio</type><subtype>mp3</subtype><play url='http://rpod.ru/get/167833/120417/play/14_08_10_-_%D0%9D%D0%B0_%D0%B6%D0%B0%D1%80%D1%83_%D0%B2%D0%B7%D0%B3%D0%BB%D1%8F%D0%BD%D1%83%D0%BB%D0%B8_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D0%BA%D0%BE%D0%BF__%D0%9D%D0%B0%D1%83%D0%BA.mp3' duration='646000' rewind='bytes' rewind_url='http://rpod.ru/get/167833/120417/play/14_08_10_-_%D0%9D%D0%B0_%D0%B6%D0%B0%D1%80%D1%83_%D0%B2%D0%B7%D0%B3%D0%BB%D1%8F%D0%BD%D1%83%D0%BB%D0%B8_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_%D0%BC%D0%B8%D0%BA%D1%80%D0%BE%D1%81%D0%BA%D0%BE%D0%BF__%D0%9D%D0%B0%D1%83%D0%BA.mp3?start=~A~' rewind_offset='0' rewind_size='10326100' rewind_duration='646000' size='10326100' /><skin preset_id='1' /></item></playlist></core>
[close]


----------

Вот собственно скрипт (спасибо Abram'у за подсказку с awk -F\" '{print $1}), который качает страницу подкаста, парсит, качает страницу последней или нет публикации, парсит ее и открывает в плеере VLC.

Это конечно не ПХП, но раз сделал для себя, решил поделиться. Можно при небольшой модификации сделать воспроизведение всех записей из публикации, по очереди, можно сделать версию для магикс, для прослушивания подкастов и интернет радио, собственно этим займусь позже.

Прикрепленный файл podcast.grabber.zip   ( 1.08 килобайт ) Кол-во скачиваний: 152


вот код скрипта:
podcast.grabber

Код

#!/bin/sh

# prod.ru podcast grabber.
# Zorge.R - 2010


grpath=${0%/*}

podcastname="nauka2-0"
podcastid="0"
trackid="0"

mkdir $grpath/tmp

# качаем главную страницу подкаста
wget -O $grpath/tmp/main.page http://$podcastname.rpod.ru/

# вытаскиваем из нее список публикаций
grep '^    <a class="rpad" amber="post:' "$grpath/tmp/main.page" | sed 's/<a class\=\"rpad\" amber\=\"post\://' | sed 's/^[ \t]*//' | awk -F\" '{print $1}' > $grpath/tmp/podcast.list

# выбор публикации. 1 - последняя, 2 - предпоследняя, и т.д.
pubnum="1p"
podcastid=`sed -n "$pubnum" $grpath/tmp/podcast.list`

# качаем страницу публикации
wget -O $grpath/tmp/podcast.page http://rpod.ru/$podcastid/

# вытаскиваем из нее список записей
grep '^         <a title="Скачать" href="' "$grpath/tmp/podcast.page" | sed 's/<a title\=\"Скачать\" href\=\"//' | sed 's/^[ \t]*//' | sed "s/http:\/\/rpod.ru\/get\/$podcastid\///" | awk -F\\/download\/ '{print $1}' > $grpath/tmp/track.list

# выбираем трек, 1 - первый, 2 - второй и т.д. (по порядку воспроизведения)
trcknum="1p"
trackid=`sed -n "$trcknum" $grpath/tmp/track.list`

# биндим URL
trackURL="http://rpod.ru/get/$podcastid/$trackid/download/"

# открываем в плеере
vlc $trackURL&

# код вставки в html
#
#<object width="500" height="40" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="movie" value="http://s.rpod.ru/swf/playa.swf?xmlURL=http%3A%2F%2Fs.rpod.ru%2Fxml%2Faudio%2Fa$trackid.xml"></param><param name="allowfullscreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://s.rpod.ru/swf/playa.swf?xmlURL=http%3A%2F%2Fs.rpod.ru%2Fxml%2Faudio%2Fa120417.xml" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="40"></embed></object>
#
# или
#<object width="500" height="40" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="movie" value="http://s.rpod.ru/swf/playa.swf?xmlURL=http://s.rpod.ru/xml/audio/a$trackid.xml"></param><param name="allowfullscreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://s.rpod.ru/swf/playa.swf?xmlURL=http://s.rpod.ru/xml/audio/a$trackid.xml" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="40"></embed></object>
#


# удаляем мусор
rm -r $grpath/tmp


[close]


Сообщение отредактировал Zorge.R - 16.8.2010, 15:08
Прикрепленный файл podcast.grabber.zip   ( 1.08 килобайт ) Кол-во скачиваний: 152
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Zorge.R
сообщение 16.8.2010, 18:50


Ветеран
Group Icon

Группа: System Administrators
Сообщений: 1 915
Регистрация: 4.10.2006
Из: рук в руки
Пользователь №: 101 800
Модель телефона: Note 9 Copper 512Gb
Прошивка: 1CR

Рейтинг: 2510



Проверил, оказывается оно открывает не только аудио, но и видео записи с rpod.

Сообщение отредактировал Zorge.R - 18.8.2010, 7:39
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Zorge.R
сообщение 18.8.2010, 7:28


Ветеран
Group Icon

Группа: System Administrators
Сообщений: 1 915
Регистрация: 4.10.2006
Из: рук в руки
Пользователь №: 101 800
Модель телефона: Note 9 Copper 512Gb
Прошивка: 1CR

Рейтинг: 2510



для всех версий от 2 и выше, требует установки пакета zenity.

версия 2.0, с выводом GUI:
Spoiler:

Прикрепленный файл podcast.grabber.2.0.zip   ( 1.62 килобайт ) Кол-во скачиваний: 145

Код podcast.grabber 2.0:

Код
#!/bin/sh

# prod.ru podcast grabber.
# Zorge.R - 2010

(
        echo "5"
        echo "# Задаем переменные"

grpath=${0%/*}


#podcastname="nauka2-0"

podcastname=`zenity --entry \
        --title="Выбор подкаста" \
        --text="Введите название подкаста:" \
        --entry-text "nauka2-0" \
`

podcastid="0"
trackid="0"

mkdir $grpath/tmp

        echo "10"
        echo "# Загрузка страницы подкаста"

# качаем главную страницу подкаста
wget -O $grpath/tmp/main.page http://$podcastname.rpod.ru/

        echo "30"
        echo "# Получение списка публикаций"

# вытаскиваем из нее список публикаций
grep '^    <a class="rpad" amber="post:' "$grpath/tmp/main.page" | sed 's/<a class\=\"rpad\" amber\=\"post\://' | sed 's/^[ \t]*//' | awk -F\" '{print $1}' > $grpath/tmp/podcast.list

# выбор публикации. 1 - последняя, 2 - предпоследняя, и т.д.

podcastid1=`sed -n "1p" $grpath/tmp/podcast.list`
podcastid2=`sed -n "2p" $grpath/tmp/podcast.list`
podcastid3=`sed -n "3p" $grpath/tmp/podcast.list`

podcastid=`zenity --list \
          --title="Публикации подкаста $podcastname" \
      --text="Выберите публикаци:" \
          --column="ID публикации:" --column="Название" \
            $podcastid1 "в разработке $podcastname1" \
            $podcastid2 "в разработке $podcastname2" \
            $podcastid3 "в разработке $podcastname3" \
`

#pubnum="1p"
#podcastid=`sed -n "$pubnum" $grpath/tmp/podcast.list`

# качаем страницу публикации
wget -O $grpath/tmp/podcast.page http://rpod.ru/$podcastid/

        echo "40"
        echo "# Получение списка записей"

# вытаскиваем из нее список записей
grep '^         <a title="Скачать" href="' "$grpath/tmp/podcast.page" | sed 's/<a title\=\"Скачать\" href\=\"//' | sed 's/^[ \t]*//' | sed "s/http:\/\/rpod.ru\/get\/$podcastid\///" | awk -F\\/download\/ '{print $1}' > $grpath/tmp/track.list

        echo "50"
        echo "# Выбор записи"

# выбираем трек, 1 - первый, 2 - второй и т.д. (по порядку воспроизведения)

trackid1=`sed -n "1p" $grpath/tmp/track.list`
trackid2=`sed -n "2p" $grpath/tmp/track.list`
trackid3=`sed -n "3p" $grpath/tmp/track.list`

trackid=`zenity --list \
          --title="Записи в публикации $podcastid" \
      --text="Выберите запись:" \
          --column="ID записи:" --column="Название" \
            $trackid1 "в разработке $podcastname1" \
            $trackid2 "в разработке $podcastname2" \
            $trackid3 "в разработке $podcastname3" \
`

#trcknum="1p"
#trackid=`sed -n "$trcknum" $grpath/tmp/track.list`

        echo "60"
        echo "# Генерация ссылки"

# биндим URL
trackURL="http://rpod.ru/get/$podcastid/$trackid/download/"

        echo "70"
        echo "# Запуск VLC плеера"

# открываем в плеере
vlc $trackURL&

# код вставки в html
#
#<object width="500" height="40" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="movie" value="http://s.rpod.ru/swf/playa.swf?xmlURL=http%3A%2F%2Fs.rpod.ru%2Fxml%2Faudio%2Fa$trackid.xml"></param><param name="allowfullscreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://s.rpod.ru/swf/playa.swf?xmlURL=http%3A%2F%2Fs.rpod.ru%2Fxml%2Faudio%2Fa120417.xml" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="40"></embed></object>
#
# или
#<object width="500" height="40" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="movie" value="http://s.rpod.ru/swf/playa.swf?xmlURL=http://s.rpod.ru/xml/audio/a$trackid.xml"></param><param name="allowfullscreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://s.rpod.ru/swf/playa.swf?xmlURL=http://s.rpod.ru/xml/audio/a$trackid.xml" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="40"></embed></object>
#

        echo "90"
        echo "# Удаление временных файлов"

# удаляем мусор
rm -r $grpath/tmp

        echo "100"
        ) |
        zenity --progress \
          --title="rpod Podcast.Grabber" \
          --text="Получение ссылки на подкаст..." \
      --auto-close \
          --percentage=0


        if [ "$?" = -1 ]; then
                zenity --error \
                  --text="Открытие отменено."
        fi

[close]


Отличия:
-наличие GUI
-отображение хода процесса
-Выбор подкаста, путем ввода его имени в диалоговом окне.
-Выбор публикации из последних 3 на странице подкаста.
-Выбор записи из 3, на странице публикации.
-----------
[close]


Версия 3.0 с отображением хода процесса:
Spoiler:

-вывод всех доступных публикаций на странице подкаста.
-вывод всех доступных записей на странице публикации.
-выбор плеера, путем ввода в диалоговом окне.
Прикрепленный файл podcast.grabber.3.0.zip   ( 1.82 килобайт ) Кол-во скачиваний: 143

Текущий код podcast.grabber 3.0:

Код

#!/bin/bash

# prod.ru podcast grabber.
# Zorge.R - 2010

(
        echo "5"
        echo "# Задаем переменные"

grpath=${0%/*}

#podcastname="nauka2-0"

podcastname=`zenity --entry \
        --title="Выбор подкаста" \
        --text="Введите название подкаста:" \
        --entry-text "nauka2-0" \\`

#podcastid="0"
#trackid="0"

mkdir $grpath/tmp

        echo "10"
        echo "# Загрузка страницы подкаста"

# качаем главную страницу подкаста
wget -O $grpath/tmp/main.page http://$podcastname.rpod.ru/

        echo "30"
        echo "# Получение списка публикаций"

# вытаскиваем из нее список публикаций
grep '^    <a class="rpad" amber="post:' "$grpath/tmp/main.page" | sed 's/<a class\=\"rpad\" amber\=\"post\://' | sed 's/^[ \t]*//' | awk -F\" '{print $1}' > $grpath/tmp/podcast.list

# вытаскиваем из нее названия публикаций
grep '^    <a class="rpad" amber="post:' "$grpath/tmp/main.page" | sed 's/<a class\=\"rpad\" amber\=\"post\://' | sed 's/^[ \t]*//' | awk -F\> '{print $2}' | awk -F\< '{print $1}' | sed 's/\"\;//g' > $grpath/tmp/podcast.name

####################
# Выбор публикации #
####################

# определяем количество публикаций
podcastnum=`sed -n '$=' $grpath/tmp/podcast.list`

# генерируем окно выбора публикации
num="1"
rm $grpath/tmp/public.list
echo -ne 'zenity --list \
          --title="Публикации подкаста $podcastname" \
          --text="Выберите публикаци:" \
          --column="ID публикации:" --column="Название:" \' > $grpath/tmp/public.list

while [ $num -le $podcastnum ]
do
# определяем ID текущей публикации
podcastid=`sed -n "$num"p"" $grpath/tmp/podcast.list`
# определяем название публикации
podcasttitle=`sed -n "$num"p"" $grpath/tmp/podcast.name`

echo -ne "
          $podcastid "'"'$podcasttitle'"'" \\" >> $grpath/tmp/public.list
let num=$num+1
done

# Выводим список на экран
#chmod 777 $grpath/tmp/public.list
podcastid=`. $grpath/tmp/public.list`

#pubnum="1p"
#podcastid=`sed -n "$pubnum" $grpath/tmp/podcast.list`

# качаем страницу публикации
wget -O $grpath/tmp/podcast.page http://rpod.ru/$podcastid/

        echo "40"
        echo "# Получение списка записей"

# вытаскиваем из нее список записей
grep '^         <a title="Скачать" href="' "$grpath/tmp/podcast.page" | sed 's/<a title\=\"Скачать\" href\=\"//' | sed 's/^[ \t]*//' | sed "s/http:\/\/rpod.ru\/get\/$podcastid\///" | awk -F\\/download\/ '{print $1}' > $grpath/tmp/track.list

        echo "50"
        echo "# Выбор записи"

################
# Выбор записи #
################
# определяем количество записей
tracknum=`sed -n '$=' $grpath/tmp/track.list`

# генерируем окно выбора записи
num=1
rm $grpath/tmp/track.show
echo -ne 'zenity --list \
          --title="Записи в публикации $podcastname" \
          --text="Выберите запись:" \
          --column="ID записи:" --column="Размер:" \' > $grpath/tmp/track.show

while [ $num -le $tracknum ]
do

# определяем ID текущей записи
trackid=`sed -n "$num"p"" $grpath/tmp/track.list`
# определяем размер записи
#podcasttitle=`sed -n "$num"p"" $grpath/tmp/podcast.name`

echo -ne "
          $trackid "'"'_undev$podcasttitle'"'" \\" >> $grpath/tmp/track.show
let num=$num+1
done

# Выводим список на экран
trackid=`. $grpath/tmp/track.show`


#trcknum="1p"
#trackid=`sed -n "$trcknum" $grpath/tmp/track.list`

        echo "60"
        echo "# Генерация ссылки"

# биндим URL
trackURL="http://rpod.ru/get/$podcastid/$trackid/download/"

        echo "70"
        echo "# Запуск плеера"

# открываем в плеере

#vlc $trackURL&


playername=`zenity --entry \
        --title="Выбор плеера" \
        --text="Введите название плеера (vlc, mlayer, ...):" \
        --entry-text "vlc" \\`

$playername $trackURL&

# код вставки в html
#
#<object width="500" height="40" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="movie" value="http://s.rpod.ru/swf/playa.swf?xmlURL=http%3A%2F%2Fs.rpod.ru%2Fxml%2Faudio%2Fa$trackid.xml"></param><param name="allowfullscreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://s.rpod.ru/swf/playa.swf?xmlURL=http%3A%2F%2Fs.rpod.ru%2Fxml%2Faudio%2Fa120417.xml" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="40"></embed></object>
#
# или
#<object width="500" height="40" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="movie" value="http://s.rpod.ru/swf/playa.swf?xmlURL=http://s.rpod.ru/xml/audio/a$trackid.xml"></param><param name="allowfullscreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://s.rpod.ru/swf/playa.swf?xmlURL=http://s.rpod.ru/xml/audio/a$trackid.xml" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="40"></embed></object>
#

        echo "90"
        echo "# Удаление временных файлов"

# удаляем мусор
rm -r $grpath/tmp

        echo "100"
        ) |
        zenity --progress \
          --title="rpod Podcast.Grabber" \
          --text="Получение ссылки на подкаст..." \
      --auto-close \
          --percentage=0


        if [ "$?" = -1 ]; then
                zenity --error \
                  --text="Открытие отменено."
        fi

[close]


проблемы 3.0:
вылезает ошибка синтаксиса на let и появляется зомби процесс.

Ошибка связаны с zenity process, т.е. с отображением хода процесса.
[close]



Версия 3.0 без отображения хода процесса:
Spoiler:

Прикрепленный файл podcast.grabber.3.0.noprocess.zip   ( 1.55 килобайт ) Кол-во скачиваний: 144

Код podcast.grabber 3.0 без отображения хода процесса:

Код
#!/bin/bash

# prod.ru podcast grabber.
# Zorge.R - 2010


grpath=${0%/*}

#podcastname="nauka2-0"

podcastname=`zenity --entry \
        --title="Выбор подкаста" \
        --text="Введите название подкаста:" \
        --entry-text "nauka2-0" \\`

#podcastid="0"
#trackid="0"

mkdir $grpath/tmp


# качаем главную страницу подкаста
wget -O $grpath/tmp/main.page http://$podcastname.rpod.ru/


# вытаскиваем из нее список публикаций
grep '^    <a class="rpad" amber="post:' "$grpath/tmp/main.page" | sed 's/<a class\=\"rpad\" amber\=\"post\://' | sed 's/^[ \t]*//' | awk -F\" '{print $1}' > $grpath/tmp/podcast.list

# вытаскиваем из нее названия публикаций
grep '^    <a class="rpad" amber="post:' "$grpath/tmp/main.page" | sed 's/<a class\=\"rpad\" amber\=\"post\://' | sed 's/^[ \t]*//' | awk -F\> '{print $2}' | awk -F\< '{print $1}' | sed 's/\"\;//g' > $grpath/tmp/podcast.name

####################
# Выбор публикации #
####################

# определяем количество публикаций
podcastnum=`sed -n '$=' $grpath/tmp/podcast.list`

# генерируем окно выбора публикации
num="1"
rm $grpath/tmp/public.list
echo -ne 'zenity --list \
          --title="Публикации подкаста $podcastname" \
          --text="Выберите публикаци:" \
          --column="ID публикации:" --column="Название:" \' > $grpath/tmp/public.list

while [ $num -le $podcastnum ]
do
# определяем ID текущей публикации
podcastid=`sed -n "$num"p"" $grpath/tmp/podcast.list`
# определяем название публикации
podcasttitle=`sed -n "$num"p"" $grpath/tmp/podcast.name`

echo -ne "
          $podcastid "'"'$podcasttitle'"'" \\" >> $grpath/tmp/public.list
let num=$num+1
done

# Выводим список на экран
#chmod 777 $grpath/tmp/public.list
podcastid=`. $grpath/tmp/public.list`

#pubnum="1p"
#podcastid=`sed -n "$pubnum" $grpath/tmp/podcast.list`

# качаем страницу публикации
wget -O $grpath/tmp/podcast.page http://rpod.ru/$podcastid/


# вытаскиваем из нее список записей
grep '^         <a title="Скачать" href="' "$grpath/tmp/podcast.page" | sed 's/<a title\=\"Скачать\" href\=\"//' | sed 's/^[ \t]*//' | sed "s/http:\/\/rpod.ru\/get\/$podcastid\///" | awk -F\\/download\/ '{print $1}' > $grpath/tmp/track.list


################
# Выбор записи #
################
# определяем количество записей
tracknum=`sed -n '$=' $grpath/tmp/track.list`

# генерируем окно выбора записи
num=1
rm $grpath/tmp/track.show
echo -ne 'zenity --list \
          --title="Записи в публикации $podcastname" \
          --text="Выберите запись:" \
          --column="ID записи:" --column="Размер:" \' > $grpath/tmp/track.show

while [ $num -le $tracknum ]
do

# определяем ID текущей записи
trackid=`sed -n "$num"p"" $grpath/tmp/track.list`
# определяем размер записи
#podcasttitle=`sed -n "$num"p"" $grpath/tmp/podcast.name`

echo -ne "
          $trackid "'"'_undev$podcasttitle'"'" \\" >> $grpath/tmp/track.show
let num=$num+1
done

# Выводим список на экран
trackid=`. $grpath/tmp/track.show`


#trcknum="1p"
#trackid=`sed -n "$trcknum" $grpath/tmp/track.list`


# биндим URL
trackURL="http://rpod.ru/get/$podcastid/$trackid/download/"


# открываем в плеере

#vlc $trackURL&


playername=`zenity --entry \
        --title="Выбор плеера" \
        --text="Введите название плеера (vlc, mlayer, ...):" \
        --entry-text "vlc" \\`

$playername $trackURL&

# код вставки в html
#
#<object width="500" height="40" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="movie" value="http://s.rpod.ru/swf/playa.swf?xmlURL=http%3A%2F%2Fs.rpod.ru%2Fxml%2Faudio%2Fa$trackid.xml"></param><param name="allowfullscreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://s.rpod.ru/swf/playa.swf?xmlURL=http%3A%2F%2Fs.rpod.ru%2Fxml%2Faudio%2Fa120417.xml" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="40"></embed></object>
#
# или
#<object width="500" height="40" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"><param name="movie" value="http://s.rpod.ru/swf/playa.swf?xmlURL=http://s.rpod.ru/xml/audio/a$trackid.xml"></param><param name="allowfullscreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://s.rpod.ru/swf/playa.swf?xmlURL=http://s.rpod.ru/xml/audio/a$trackid.xml" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="40"></embed></object>
#


# удаляем мусор
rm -r $grpath/tmp


[close]

[close]

Работает отлично, сам юзаю "podcast.grabber 3.0 без отображения хода процесса", т.к. простая 3.0 недопилена.

Скриншоты версии podcast.grabber 3.0 без отображения хода процесса:
Прикрепленное изображение Прикрепленное изображение
Прикрепленное изображение Прикрепленное изображение

Сообщение отредактировал Zorge.R - 18.8.2010, 7:53
Прикрепленный файл podcast.grabber.2.0.zip   ( 1.62 килобайт ) Кол-во скачиваний: 145
Прикрепленный файл podcast.grabber.3.0.zip   ( 1.82 килобайт ) Кол-во скачиваний: 143
Прикрепленный файл podcast.grabber.3.0.noprocess.zip   ( 1.55 килобайт ) Кол-во скачиваний: 144
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 18.8.2010, 10:36


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



можно php скрипт из этого сделать?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Zorge.R
сообщение 18.8.2010, 11:11


Ветеран
Group Icon

Группа: System Administrators
Сообщений: 1 915
Регистрация: 4.10.2006
Из: рук в руки
Пользователь №: 101 800
Модель телефона: Note 9 Copper 512Gb
Прошивка: 1CR

Рейтинг: 2510



Osta,
можно из этого выводить код плеера (например через cron, 1 раз в сутки), на выходе получается готовый для вставки код плеера, который подхватит php, но как сделать все выше описанное средствами только ПХП, я не знаю, нужен пхп кодер.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 18.8.2010, 11:25


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



а javascript ом? )
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Zorge.R
сообщение 11.9.2010, 18:39


Ветеран
Group Icon

Группа: System Administrators
Сообщений: 1 915
Регистрация: 4.10.2006
Из: рук в руки
Пользователь №: 101 800
Модель телефона: Note 9 Copper 512Gb
Прошивка: 1CR

Рейтинг: 2510



не знаю что там с яваскрипт, но прослушивание подкастов с rpod.ru доступно теперь и на MAGX
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Chepurnoff
сообщение 16.9.2010, 14:46


Мастер
****

Группа: Разработчики
Сообщений: 179
Регистрация: 15.12.2007
Из: Тюмень - Пенза - Саратов
Пользователь №: 157 192
Модель телефона: E8, VE66, V3i
Прошивка: zMod


Настроение:
Ту бир ор нот ту бир?



Рейтинг: 275



javascript-ом можно, только зачем?)
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 16.9.2010, 14:51


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



Chepurnoff, ты можешь сделать?
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Парсинг rpod.ru и прочих подкаст · Компьютеры, операционные системы, софт и железо · Forum
 

Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29.7.2025, 6:50

Форум живёт: