fat0troll 26.09.2011 07:54

Скрипты на bashЗабиратор обложек с last.fm

Простой консольный говноскрипт, умеющий лишь одно — забирать с заданного в параметре URL страницы альбома на last.fm (пример) обложку этого самого альбома.

1
2
3
4
5
6
7
8
#/bin/bash
# Beerware
# Valdos Sine, 2011
LINK=`wget -O - ${@} | grep albumCover | grep coverMega | cut -d '"' -f 10`
FT=`echo ${LINK} | cut -d '.' -f 4`
OUTNAME=folder.$FT

wget -O $OUTNAME $LINK



Запуск — sh lastfmcoverget.sh http://www.lastfm.ru/music/Green+Day/American+Idiot (ну и подставляем ссылку на нужный альбом). По умолчанию обложка сохраняется в файл folder.$расширение (folder.png, folder.jpg).

Улучшения are welcome.


Тэги: bash lastfm wget
+ 9 -
Похожие Поделиться

mealsforall 26.09.2011 13:55 #
Плюсик за слово "Забиратор".
nymiiin 26.09.2011 16:18 #
я писал такой, проходящий по каталогам с музыкой и скачивающий с ластфма обложки для альбомов.
как раз часть со скачиванием в моем довольно корявая (юзал lastfm api, парсил ответный xml), могу я использовать этот код в своем скрипте?
nymiiin 26.09.2011 16:22 #
а, Beerware же )
fat0troll 26.09.2011 20:22 #
с тебя минералка ;3 (я пиво не пью)
Daria 30.09.2011 19:23 #
некоторое время назад накидала такой скрипт, который проходит по директории артиста, в которой лежат альбомы с такими названиями 'YEAR - ARTIST - ALBUM' и для каждого альбома тянет обложку с last.fm, а затем уменьшает её до 300x300 px и оставляет в директории с альбомом.

 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/bin/bash

#
# проставит все ковры из базы lastfm
# запускать из папки artist
#

GREEN='\e[1;32m'
NC='\e[0m'

api_key=b25b959554ed76058ac220b7b2e0a026

find . -type d -maxdepth 1 -mindepth 1 | while read album_directory; do

album=${album_directory#* - * - }
artist=${album_directory#* - }; artist=${artist% - *}
tempfile=$(mktemp)

cd "$album_directory"
echo -e $GREEN$artist$NC $album_directory

curl http://ws.audioscrobbler.com/2.0/?method=album.getinfo -d api_key=$api_key --data-urlencode artist="$artist" --data-urlencode album="$album" > $tempfile

large_image=$(xpath -q -e "/descendant-or-self::image[@size='extralarge']/text()" $tempfile)
mega_image=$(xpath -q -e "/descendant-or-self::image[@size='mega']/text()" $tempfile)

if [[ $large_image ]]
then
mkdir Art
cd Art
wget -nv $mega_image
cd ..
fi

if [[ $large_image ]]
then
image=$large_image
else
image=$( xpath -q -e "/descendant-or-self::image[text()!='']/text()" $tempfile | tail -1)
fi
wget -nv $image -O image
convert -thumbnail 300x300! image cover.jpg

rm $tempfile
rm image

echo ok
cd ..
done



сейчас лень менять конструкцию условия с 27 по 33 строки, сдаётся мне, я что то там намудрила.