foobar2000で聴いている曲をTwitterにポストするPerlスクリプト

Control Serverっていうcomponentを入れてtelnetで接続できるようにしておく。UTF-8 Output/Inputっていうオプションを有効にする以外設定はデフォルトのまま。

ユーザとかパスワードとかホストとかポート(デフォルトのままならこれは変更必要ない)は適宜変更してください。

#!/usr/bin/perl
use strict;
use warnings;

use Net::Telnet;
use Net::Twitter;

my $user = 'username';
my $pass = 'password';

my $twitter = Net::Twitter->new(
    username => $user,
    password => $pass,
);

$| = 1;

my $host = '192.168.11.2';
my $port = '3333';

my $telnet = Net::Telnet->new(
    host => $host,
    port => $port,
)->get;

while (1) {
    my $line = eval { $telnet->getline };
    next if $@;
    my ($artist, $album, $title) = (split /\|/, $line)[6, 7, 11];
    my $status = sprintf "Listening: %s - %s - %s", $artist, $album, $title;
    $twitter->update($status);
}
  • inspired by
    • oct inaodu
      • iTunesでできてfoobar2000でできないなんてと思い書いてみました。投稿フォーマット丸パクリでごめんなさい。
    • 404 Not Found
      • foobar2000Perlでのいじり方を探してて見つけました。ほとんどコピペでごめんなさい。

本当はfoobar2000のcomponentで作った方が100倍いいんだろうけどC++がわかりません。あとエラー処理とか全然してないしfoobar2000が起動してないとひどいことになります。まだ友達がいません