Не нашел подходящей примочки, чтобы слушать Last.FM и сохранять получаемые mp3, чтобы ненароком не пропустить ни одного ознакомительной секунды [Ну бывает, отвлекает телефон там какой-нибудь. И на самом интересном треке] :)

Решил попробовать сделать простенький вариант. Полностью реализовывать функционал HTTP-прокси у меня пока еще руки не дошли — нужно бы почитать RFC. Поэтому я решил использовать готовую, мою любимую, реализацию прокси — 3proxy.

Так получился плагин для 3proxy, который обрабатывает проходящий через него HTTP-поток и сохраняет получаемое аудио в файлы. Сам протокол не сложен, и все очевидно если посмотреть на него под сниффером.

Плагин настраивается через текстовый конфиг. Сейчас можно настроить:

  • папку, в которую нужно складывать продукты жизнидеятельности плагина:
    lfm_folder "\last.fm mp3\"
    команда указывает плагину сохранять все в папку в корне диска
  • формат имени получаемых файлов. поддерживаются 4 макроса — %a (artist/исполнитель), %l (album/альбом), %t (track name/имя трека), %n (порядковый номер)
    lfm_format "%a — %t.mp3"
    пример имени — «The Calling — Wherever You Will Go.mp3»

Пример конфига:
external 0.0.0.0
internal 127.0.0.1
flush
auth iponly
allow *

plugin LastFripper.dll lfm_plugin
lfm_folder «mp3\»
lfm_format "%a — %t.mp3"

proxy -p9393

Не знаю куда корешнее выкладывать такие простые проекты, поэтому использовал Народ.
Вот тут теперь домашняя страничка сборочки с плагином

Кстати, билд 3proxy должен быть 26.02.2009 и свежее, иначе плагин не работает.
Спасибо 3APA3A за быструю помощь.