Добро пожаловать на форум, Гость!
Войдите или зарегистрируйтесь!
Имя пользователя:   Пароль:  
Запомнить меня 




Начать новую тему Ответить на тему   [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Качаем плейлисты с намбы
СообщениеДобавлено: 16 ноя 2011, 10:48 
Модератор
Аватар пользователя
Статус: Не в сети

GeoIP: Kyrgyzstan

Сообщений: 803

Зарегистрирован: 02 мар 2010, 16:13
Благодарил (а): 6 раз.
Поблагодарили: 12 раз.
В общем. Решил исправить безбразие, которое возникло. Качалка плейлистов с намбы есть для венды, а для линухсов нет.
Требования к пакетам:
sed
awk
grep
wget
cat
echo

Сам скрипт:
Синтаксис: [ Загрузить ] [ Скрыть ]
Используется подсветка синтаксиса bash
#!/bin/bash
# This one downloading tracks from namba's playlists
# Need some customisation. And it fears whitespaces
#
# Author: Gen1us2k
# Thanks:
# - Romanius for support
# - Google for some useful methods
#
tmpfile=$(mktemp /tmp/namba_XXXXXX)
songlist=$(mktemp /tmp/songs_XXXXXX)
trackFile=$(mktemp /tmp/tracks_XXXXXX)

use_err(){
        echo "Usage:   `basename $0` [-d outputDir] playlist_id"
        echo "Example: `basename $0` -d ~/Music/ 16278"
        echo "         Saves playlist with id 16278 to ~/Music folder"
        echo
        exit 65
}

getPlaylist() {
        echo Getting Playlist Data ...
        wget -O $tmpfile $link &> /dev/null
}

ParseJson() {
        count=$(cat $tmpfile | sed -e 's/[{}]/''/g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' | grep '"file_name":' | sed 's/:/ /1' | awk -F \" '{ print $4 }'|sed -e 's/\#039\;/'\''/g'|wc -l)
        cat $tmpfile | sed -e 's/[{}]/''/g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' | grep '"file_name":' | sed 's/:/ /1' | awk -F \" '{ print $4 }'|sed -e 's/\#039\;//g' |sed -e 's/amp;/\&/g'> $songlist
        timestamp=$(cat $tmpfile | sed -e 's/[{}]/''/g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' | grep '"timestamp":' | sed 's/:/ /1'|awk -F \" '{ print $6}')
        cat $tmpfile | sed -e 's/[{}]/''/g' | awk -v k="text" '{n=split($0,a,","); for (i=1; i<=n; i++) print a[i]}' | grep '"url":' | sed 's/:/ /1'|awk -F \"  {'print $4'}|awk -F \\\/ {'print $5'}|awk -F \\ '{print $1}' > $trackFile
}

downloader(){
        for ((z=1; z<=$count; z++))
        do
                songName="`sed -n ${z}p $songlist`"
                trackId=`sed -n ${z}p $trackFile`
                url="http://download.files.namba.kg/files/`echo -n "uno/$trackId/audio.mp3$timestamp"|md5sum -|awk -F" " '{print $1}'`/$timestamp/$trackId/audio.mp3"
                echo Saving $songName ...
                wget -c -O "$fn/$songName" $url &> /dev/null
        done
}

if [ $# -lt 2 ]; then use_err; fi
while getopts ":d:" Option
do
  case $Option in
    d) fn=$OPTARG;;
    *) use_err;;
  esac
done

shift $(($OPTIND - 1))

if [ -z $1 ];  then use_err; fi
if [ -z "$fn" ]; then fn="$1"; fi
link="http://music.namba.kg/service.php?_dc=0&action=getPlaylist&id=$1"
getPlaylist
ParseJson
downloader
rm $tmpfile $songlist $trackFile
Обработано за 0.032 секунд, используется GeSHi 1.0.8.4


Другие интересные скрипты и правки к ним, лежат на гитхабе
https://github.com/gen1us2k/bash-scripts/commits/

Использовать так: ./downloader -d /dest/dir playlist_id
playlist_id - последние циферки в урле

ЗЫ баги, найденные вами, оставляйте в теме
минус: пока что не работает с русскими треками :(


Изображение

Home: Windows Heaven
Home: Debian 6
For Servers: Debian || RHEL Based || Gentoo || FreeBSD


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Качаем плейлисты с намбы
СообщениеДобавлено: 16 ноя 2011, 11:00 
Бородатый сис
Аватар пользователя
Статус: Не в сети

GeoIP: Kyrgyzstan

Сообщений: 2898
Откуда: Из серверной
Зарегистрирован: 03 мар 2010, 15:12
Благодарил (а): 19 раз.
Поблагодарили: 121 раз.
ОС: RHEL 6.7
Gen1us2k
*COOL* опробую как-нибудь


Я не злопамятный, я просто часто ковыряю логи
Изображение


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
   Похожие темы   Автор   Ответов   Просмотров   Последнее сообщение 
Перенесенная ^_^

в форуме Linux

root

3

38

02 мар 2010, 16:15

Gen1us2k Перейти к последнему сообщению

Перенесенная Документация по Gentoo

в форуме Linux

Gen1us2k

0

4

05 мар 2010, 18:54

Gen1us2k Перейти к последнему сообщению



Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Собрано Raven. Русская поддержка phpBB
phpBB SEO