FC2ブログ

perlの記事 (1/1)

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

音泉と響-HiBiKi-のラジオをダウンロード・保存する方法

ここにあった文書は、本体添付文書に統合されました。











この文章は、AnGe4jという拙作フリーウェアの一部です


本体へのアクセスはこちらからどうぞ。



音泉と響の録音



この文書では、AnGe4jの機能の一部である音泉と響を録音する方法を説明します。
本体を持っていない方は、上記のリンクから本体を手に入れてください。



◆◆◆響を録音するには◆◆◆



◯AnGe4jを起動します
○緑画面が出るまで待ちます
○0(ゼロ)を押します

すると、月火水木金土の番組すべてをダウンロードします。


大味すぎるでしょうか。
曜日ごとにダウンロードすることもできます。

月火水木金土日
123456┛


各曜日に合わせた数字キーを押してください。
その日に公開された番組を一日分ダウンロードします。
土日はまとめてダウンロードします。

押したキーは画面下のQueueに一括表示されます。
キーは連発しても、処理は順番にという感じです。


注意点はみっつ

1;
キーボードは一秒以上ゆっくりと押してください。
リピートは効かなくしてありますので、思う存分ぐりぐりと。

2:
すでに存在するファイルはスキップします。
上書きしません。

3:
響の録音機能も、スロットをひとつ使います。
すでにスロットを使い切っていると、起動できません。




◆◆◆音泉を録音するには◆◆◆



◯AnGe4jを起動します
○緑画面を出します
○P(ピー)を押します

すると、月火水木金の番組すべてをダウンロードします。


大味すぎるでしょうか。
曜日ごとにダウンロードすることもできます。

月火水木金土日
MoTuWeThFr┻┛
QWERT


各曜日に合わせた数字キーを押してください。
その日に公開された番組を一日分ダウンロードします。
金土日はまとめてダウンロードします。

押したキーは画面下のQueueに一括表示されます。
キーは連発しても、処理は順番にという感じです。
うっかり積みすぎたときはBSキーでとりのぞきます。


注意点はみっつ(全部、響と同じです)

1;
キーボードは一秒以上ゆっくりと押してください。
リピートは効かなくしてありますので、思う存分ぐりぐりと。

2:
すでに存在するファイルはスキップします。
上書きしません

3:
音泉の録音機能も、スロットをひとつ使います。
すでにスロットを使い切っていると、起動できません。





◆◆◆一巻の終わり◆◆◆



他に設定できる項目はありません。
シンプルイズベスト。
for beautiful human life
スポンサーサイト

カミングスーん

響のリニューアルで、鬱で死にたいです


せっかくダウンロード機能をつけたのに。
やり直しする気が起きない今日この頃。


下手な考え、休むににっこり。

XML::Simple を日本語で使おうとして苦労した

Perlは日本語を扱えない言語である


私はPerlが好きで、結構いろんなものを書いたりしてます。
そこで、問題となるのは、日本語。
Perlは、日本語を扱うことができません。

それでも、Perlを使おうと悪戦苦闘してるわけです。
そして、今日もまた躓きました。


XML::Simple な


radikoの番組表を読み込もうとしてはまりました。 utf8のXMLをつっこんで、出てきたものは化けている。
で、早速ですが、おこたえ。
   my $id = 13;

   my $xmluri  = 'http://radiko.jp/v2/api/program/today?area_id=JP'.$id;
   my $agent   = 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)';
   my $timeout = 10;
   my $xmlf;

   for(0..3){
      my $ua = LWP::UserAgent->new("agent" => $agent, "timeout" => $timeout,);
      my $r = $ua->get("http://radiko.jp/v2/api/program/today?area_id=JP$id");
      $xmlf = decode_utf8 $r->content;
      last if $r->is_success;
      sleep 5;
   }


   my $x = XML::Simple->new();
   my $p = $x->XMLin(
      encode_utf8 $xmlf,
      ForceArray => 0,
      KeyAttr => []
   );

   print encode("cp932", $p->{stations}{station}[0]{scd}{progs}{prog}[0]{title});
use utf8; で書いております。
$xmlf にダウンロードした番組表を入れて decode_utf8 でデコード。
ここまでは普通。

次に、XML::Simple に入れる前に encode_utf8 でエンコード。
まあそういうこともある。

そして出てくるデータは内部コードのutf8(!?)

私が使っているのはwindowsのperlなので、cp932でエンコードします。
最後は文字化け無し。

なんでやねん。2時間くらい悩んだんですけど(おこ!)

いくら勉強しても、Perlを扱っている時間の半分は文字コードの不具合ですよ。

どうなの。ほかの言語はどうなの。


Perlで日本語を扱ってはいけません。
全部英語で書きましょう。
(でも、これからもPerl使うけど)

perlで特殊変数を配列にして使おうとしてイライラしたのでメモる

perlのおはなしです。
細かいことはいいので、即、内容。



$_[0] を ARRAY として使う場合


$#{$_[0]}
要素の数(最後の要素の添え字)

@{$_[0]}
普通に使う(@hogeみたいに使う)

$_[0]->[foo]
いっこずつアクセスする



@_ を 配列として使う場合


$#_
要素の数(最後の要素の添え字)

@_
普通に使う(あたりまえか)

$_[foo]
いっこずつアクセスする



$_ を ARRAY として使う場合


$#$_
要素の数(最後の要素の添え字)

@$_
普通に使う

$_->[$i]
一個ずつアクセスする





@A よりも、$A->[]を使う方が多い今日この頃。
などと言い訳をしながら終わります。

アニラジを録音・録画・保存する方法……のメモ(KoRec逆襲編1)

PCで日頃やってることを自動化するお話です


自動化しますよ。バリバリと。
何が私を突き動かすのか。
いい加減な私でも、切迫していることがあるんですよ。
つい先日、出禁を食らったあの件。
はっきり言うと、超!A&G+の録音・録画です。
  

ここでは、何回かに分けて、私の活躍を紹介……
などと言うほどのものでもない、私の日記です。
私、実はプログラマじゃないので、その点はご容赦ください。



先にKoRecさんの件を


先日出禁を食らったわけですけど、期限があると思ったんですよ。
でも、もう何日もたつんですけど、変化有りません。

例えばこれ。
-clean オプションをつけて、掃除をしようと思いましたが。
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\Users\Public\Documents\radio>korec -clean
=== Exception at 2015/05/21 18:57:28 ===
System.TypeInitializationException : 'ah' のタイプ初期化子が例外をスローしました。

*use -v option to show debug information


C:\Users\Public\Documents\radio>korec -clean -v
=== Exception at 2015/05/21 18:57:37 ===
System.TypeInitializationException : 'ah' のタイプ初期化子が例外をスローしました。

*use -v option to show debug information


C:\Users\Public\Documents\radio>korec -h
=== Exception at 2015/05/21 18:57:56 ===
System.TypeInitializationException : 'ah' のタイプ初期化子が例外をスローしました。

*use -v option to show debug information


C:\Users\Public\Documents\radio>
エクセプションよ!(CV:山崎はるか)
helpもだめ。verboseは、もっとだめ。
まあ、サーバにつなげないんだから仕方ない。

つか、そもそもこれ、おかしくないですか。
サーバにいろいろ晒してから、はじめて起動できる。
もちろん、ピンポイントで私を捕捉できる。
ずばり、スパイウェアじゃないですか。

長くなったかな。ぐちはここまで。


まず、解より始めよ


超!A&G+の録音録画の第一歩は、番組表の攻略から始めました。
だって、自動化で一番難しいのは、ファイル名の自動付与じゃないですか。


私は、文化放送の番組表そのものから、持ってくることにしました。
文化放送の番組表を全選択、表計算ソフトに貼り付け。
そして、CSV形式で保存したのがこれ。
6,"06:00ツブ★ドル ユメカナラジオ!? ","06:00れい&ゆいの文化放送ホームランラジオ!松嵜麗、渡部優衣 ","06:00伊福部崇の ラジオのラジオ伊福部崇 ","06:00桃園ひめこ・巴奎依のライトノベル学園桃園ひめこ、巴奎依 ","06:00金の卵石井璃里子、熊谷正弥、馬場惇平 ","06:00超!モバイル A&G presents 生放送 ","06:00超!A&G+ スペシャル"
,"06:30木戸衣吹・エリイ ゆめいろ学院木戸衣吹、山崎エリイ ","06:30のざP・松永真穂の ライブドッグ野崎圭一、松永真穂 ","06:30bamboo(milktub)、上田朱音 ","06:30今村彩夏 STAY GOLD今村彩夏 ","06:30高垣彩陽の あしたも晴レルヤ高垣彩陽 ",,
7,"07:00三上枝織の A&G NEXT GENERATION Lady Go!!三上枝織 ","07:00上坂すみれの A&G NEXT GENERATION Lady Go!上坂すみれ ","07:00小松未可子の A&G NEXT GENERATION Lady Go!!小松未可子 ","07:00大久保瑠美の A&G NEXT GENERATION Lady Go!!大久保瑠美 ","07:00高森奈津美の A&G NEXT GENERATION Lady Go!!高森奈津美 ","07:00アニアモ!川上莉央、立花理香 ","07:00岩田光央・鈴村健一 スウィートイグニッション岩田光央、鈴村健一"

かなりもじゃもじゃですけど、これでもまだいい方。
切り分け方がなんとなくわかりますからね。

そんで、これが自作フィルタにかけた結果
土曜日04時00分 放送休止*4
土曜日03時30分 角元明日香の本気!アニラブ角元明日香*1
土曜日03時00分 A&G NEXT BREAKS 吉田有里のFIVE STARS*1
土曜日02時30分 カスタマイZのハジメマシタカスタマイZ*1
土曜日02時00分 木戸衣吹・エリイ ゆめいろ学院木戸衣吹、山崎エリイ*1
土曜日01時30分 「黒子のバスケ」 放送委員会小野賢章、小野友樹*1
土曜日01時00分 逢坂市立花江学園 ~Radio逢坂良太、花江夏樹*1
土曜日00時30分 吉野裕行FC吉野裕行*1
土曜日00時00分 羽多野・寺島 Radio 2D LOVE*1
金曜日23時30分 有限会社 チェリーベル櫻井孝宏、鈴村健一、松来未祐*1
金曜日23時00分 小野大輔・近藤孝行の 夢冒険~Dragon&Tiger小野大輔、近藤孝行*1
金曜日22時30分 EMERGENCY the RADIO*1
金曜日22時00分 れいちゃんねる!Ray ※隔週生放送*1
金曜日21時30分 ジェンガでナイト!*1
金曜日21時00分 黒崎真音のRADIO RONDO ROBE~妄想王女の単独電波~黒崎真音*1
意外ときれいになった。
でも、まだ、誰がやってる番組か区別できてない。
CSVだとこれが限界かもしれないです。

こうなったら、生のHTMLから生成するしか。

そこまで考えて気づきました。
この番組表、年に4回しか変わらないよね。
しかも、1年後には、フォーマットが変わっているかも。

モチベーションをやられました。
とりあえずはピットイン。


でもまた頑張りますよ


やっぱり、htmlから処理しようと思います。
こつこつやりますよ。
なんだか、面白くなってきちゃいました。
パズルみたいなもんですからね。
趣味としても悪くないかな。



ちょっとちょっとタイトルが入ってないよ!


いくら生データを持って来ようとしても、間違ってちゃね。
確か、「X-RADIO」だった、かな?
私は書き直さないことにしました。


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。