Тут не исправить уже ничего, Господь, жги!
Войти
!bnw
Сегодня
Клубы
mplayer
last.fm
?
Как прикрутить к mplayer скробблер?
#J4U8SB
/
@rynffoll
/
4544 дня назад
‰ cat ~/bin/m2f #!/bin/sh mplayer "$@" | mplayerfm ‰ cat ~/bin/mplayerfm #!/bin/bash scrobble() { data=`mid3v2 "$1" | egrep -a "^(TIT2|TPE1|TALB)="` title="`gettag TIT2 <<< "$data"`" album="`gettag TALB <<< "$data"`" artist="`gettag TPE1 <<< "$data"`" lastfm.pl "$artist" "$title" "$album" 180 } gettag() { sed -n "s/^$1=
p;s/\
_/g" } m="`mktemp -d`" tee >({ sed -rune 's/^(Playing|Воспроизведение) (.*)\.$/\2/p' | while read a; do grep -q '
http://
' <<< "$a" && { httpfs "$a" "$m" scrobble "$m"/* fusermount -u "$m" } || { scrobble "$a" } done; }) rmdir "$m"
#J4U8SB/FJH
/
@l29ah
/
4544 дня назад
@l29ah
‰ cat ~/bin/lastfm.pl #!/usr/bin/perl # ~/.config/lastfm looks like this: # login = 'vpupkin'; # password = 'mycoolpassword'; $hs_url = "
http://post.audioscrobbler.com/
"; $client_id = "lsd"; $client_version = "1.0.4"; $debug = 1; use LWP::UserAgent; use Digest::MD5 qw(md5_hex); use URI::Escape; die "Usage: lastfm.pl <artist> <title> <album> <length>" unless $
#ARGV
==3; $ua = LWP::UserAgent->new; do "$ENV{HOME}/.config/lastfm"; foreach ("login", "password") { die "No $_ in ~/.config/lastfm" unless ${$_}; } my $resp = $ua->get($hs_url."?hs=true&p=1.1&c=$client_id&v=$client_version&u=$login"); die "Unable to handshake with $hs_url" unless $resp->is_success; ($status, $token, $url, $int) = split(/\n/, $resp->content, 4); print "Status: $status\nHash: $hash\nUrl: $url\n$int" if $debug; die "Handshake failed, server returned: $status=\n" unless $status =~ /UP(TO)?DATE/; $hash = md5_hex(md5_hex($password).$token);
@t
= gmtime(); $req_str = "u=$login&s=$hash&a[0]=".uri_escape($ARGV[0]).'&t[0]='.uri_escape($ARGV[1]).'&b[0]='.uri_escape($ARGV[2]).'&m[0]=&l[0]='.uri_escape($ARGV[3]).'&i[0]='.uri_escape(sprintf('%04d-%02d-%02d %02d:%02d:%02d', $t[5] + 1900, $t[4] + 1,
@t
[3, 2, 1, 0])); print "$req_str\n" if $debug; my $req = HTTP::Request->new(POST=>$url); $req->content_type('application/x-www-form-urlencoded'); $req->content($req_str); $resp = $ua->request($req); ($status, $int) = split(/\n/, $resp->content, 2); print "Server returned: $status\n" if $debug; die "Scrobble failed, server returned: $status\n" unless $status == "OK";
#J4U8SB/A6Y
/
@l29ah
-->
#J4U8SB/FJH
/
4544 дня назад
@l29ah
Если использовать плейлист, то все скробблится после окончания прослушивания, а хотелось бы после каждого трека. Как такое запилить?
#J4U8SB/203
/
@rynffoll
-->
#J4U8SB/FJH
/
4543 дня назад
@rynffoll
Мне кажется, ты врёшь.
#J4U8SB/QLT
/
@l29ah
-->
#J4U8SB/203
/
4543 дня назад
@l29ah
Играет плейлист с Mono, а ластик ничего еще не знает.
#J4U8SB/OSB
/
@rynffoll
-->
#J4U8SB/QLT
/
4543 дня назад
@rynffoll
Где-то что-то нужно нажать, чтобы не буферизовало. У меня нет времени фиксить.
#J4U8SB/K3Z
/
@l29ah
-->
#J4U8SB/203
/
4543 дня назад
@l29ah
Ок. Потыкаю.
#J4U8SB/5KB
/
@rynffoll
-->
#J4U8SB/K3Z
/
4543 дня назад
BnW для ведрофона
BnW на Реформале
Викивач
Котятки
Цоперайт © 2010-2016
@stiletto
.