らじる★らじる 録音サーバーの構築(2015-09移行版)

らじるらじるの録音について放置していたために投稿記事の通りに作業したことで困ってしまう方を作ってしまった。
大変申し訳ない。2015年9月になるまでは問題なかったのだが仕様が変わったためなのです。

新しいスクリプトで更新されたタイプに置き換えて使う記事で更新したい。

録音スクリプトの入手

らじる★らじるの録音スクリプトはこちらにあります。

http://plamo.linet.gr.jp/wiki/index.php?diary%2FKojima%2F2015-10-06

9月16日の記事にもファイルがあるようですが、10月6日版が不足なくそろっています。

ここからファイルが6つダウンロードできる。
・radiru_check.py
・radiru_del.py
・radiru_rec.py
・radiru_tag.py
・rtmdump-2.4-i686-P3.txz
・rtmdump-2.4-x86_64-P3.txz

今回もraspberry pi2を母艦にするので、このうち上の4つ(.py)を利用します。

atのインストール

[bash]sudo aptitude install at[/bash]

今まで役割を理解していなかった。Ubuntuなどではインストール不要。すでに入っていると思う。
RaspberryPi2の運用ではatのインストールされていないので、らじる★らじる録音スクリプトradiru_rec.pyの動作に必要になる。

rtmpdumpのインストール

[bash]sudo aptitude install rtmpdump[/bash]

これでデータを取得する。

この方式だとより時間がずれずにデータ取得できるようだ。いままで頭と尻に少し余裕を持たせた録音をしていたのだがこれで解決した。

このあと、rtmpdumpはソースビルドしないと録音失敗することが分かった。
ソースビルドだけ別記事にしたのでこちらを参照

ffmpegのインストール

[bash]sudo aptitude install ffmpeg[/bash]

flv形式で取得されたファイルデータをAACにエンコードする。MP3よりもタグの形式にバージョンのばらつきによるソフトウェアアプリケーションの取り扱いの違いが発生しないのでとても良いと思う。

MP3はタグの問題があるので個人的には使いづらかったので朗報である。

2015年10月以前版でインストールした情報を削除する。

これは、ずーーーーーーーっっとUBUNTUで運用してきたのでRaspberryPiやRaspberryPi2にして便利に運用できるからもっとみんなに知らせたいと思ってしまった過去の自分が書いた記事により古い情報で環境構築された方のためのコメントです。

記事を書いた当時はとても便利な状態だったのですが9月にURLが変わったので使えなくなり、すぐ気づいた人は中身テキストなので(pythonですから)書き換えて使ってると思います。

旧pythonの予約ファイルを削除する(旧版利用者)

これは、旧radiru_rec.pyで予約したものが残っているときれいではないからです。

ターミナルエディタから以下の通り打ち込みます。これは、前回記事のとおりにやってる場合、.pyファイルを/bin/に移して実行権限を与える環境構築をしているためです。

自分もURL変更した旧版環境を削除して一からインストールしなおすことにしました。

[bash]radiru_check.py

104 r2 入門ビジネス英語.mp3 12/15(火) 09:15:00 16m
80 r2 入門ビジネス英語.mp3 12/21(月) 09:15:00 16m
78 r2 入門ビジネス英語.mp3 12/7(月) 09:15:00 16m
77 r2 入門ビジネス英語.mp3 11/30(月) 09:15:00 16m
82 r2 入門ビジネス英語.mp3 1/4(月) 09:15:00 16m
106 r2 入門ビジネス英語.mp3 12/29(火) 09:15:00 16m
79 r2 入門ビジネス英語.mp3 12/14(月) 09:15:00 16m
102 r2 入門ビジネス英語.mp3 12/1(火) 09:15:00 16m
83 r2 入門ビジネス英語.mp3 1/11(月) 09:15:00 16m
107 r2 入門ビジネス英語.mp3 1/5(火) 09:15:00 16m
103 r2 入門ビジネス英語.mp3 12/8(火) 09:15:00 16m
81 r2 入門ビジネス英語.mp3 12/28(月) 09:15:00 16m
105 r2 入門ビジネス英語.mp3 12/22(火) 09:15:00 16m
108 r2 入門ビジネス英語.mp3 1/12(火) 09:15:00 16m
[/bash]

こんな感じに残っています。

[bash]radiru_del.py 104[/bash]

このように打ち込んでチェックすると

[bash]
radiru_check.py
80 r2 入門ビジネス英語.mp3 12/21(月) 09:15:00 16m
78 r2 入門ビジネス英語.mp3 12/7(月) 09:15:00 16m
77 r2 入門ビジネス英語.mp3 11/30(月) 09:15:00 16m
82 r2 入門ビジネス英語.mp3 1/4(月) 09:15:00 16m
106 r2 入門ビジネス英語.mp3 12/29(火) 09:15:00 16m
79 r2 入門ビジネス英語.mp3 12/14(月) 09:15:00 16m
102 r2 入門ビジネス英語.mp3 12/1(火) 09:15:00 16m
83 r2 入門ビジネス英語.mp3 1/11(月) 09:15:00 16m
107 r2 入門ビジネス英語.mp3 1/5(火) 09:15:00 16m
103 r2 入門ビジネス英語.mp3 12/8(火) 09:15:00 16m
81 r2 入門ビジネス英語.mp3 12/28(月) 09:15:00 16m
105 r2 入門ビジネス英語.mp3 12/22(火) 09:15:00 16m
108 r2 入門ビジネス英語.mp3 1/12(火) 09:15:00 16m
[/bash]

104が消えました。
これを繰り返します。空白を開けて連続削除ができます。

[bash]
radiru_del.py 77 82 106 79 102 83 107 103 81 105 108
[/bash]

radiru_check.pyを実施しても何も表示がでないので、これで削除残しがなく予約削除を完了したことがわかります。

旧 radiru_xxファイルを削除する(旧版利用者)

[bash]
sudo rm /bin/radiru_*.py
sudo rm /home/pi/radiru_*.py
[/bash]

前回のとおりの場合は、これで消えます。
/home/pi/というのはホームフォルダにpiユーザーでログインして利用している場合です。

初期ユーザーpiで環境構築している場合を想定しています。

2015年9月移行版の新規環境 ファイル取得

http://plamo.linet.gr.jp/wiki/index.php?diary%2FKojima%2F2015-10-06
Pythonファイルはここにあります。

  • radiru_rec.py
  • radiru_noa.py
  • radiru_tag.py
  • radiru_check.py
  • radiru_del.py

.pyファイル本体の文字コード変更

ダウンロードしたこれらのファイルはEUC文字コードで保存されているのでUTF-8にします。
RaspberryPi2がUTF-8で運用しているためです。文字コードがEUCのLinux構築をしているならそのままでOK

Windowsの場合
サクラエディタを使っています。
名前を付けて保存のときに文字コードセットがでてくるので、ここをUTF-8にする

Linux側利用の場合

[bash]
wget http://raspi.wpblog.jp/wp-content/uploads/2015/11/radiru_rec.py_.txt
wget http://raspi.wpblog.jp/wp-content/uploads/2015/11/radiru_noa.py_.txt
wget http://raspi.wpblog.jp/wp-content/uploads/2015/11/radiru_tag.py_.txt
wget http://raspi.wpblog.jp/wp-content/uploads/2015/11/radiru_check.py_.txt
wget http://raspi.wpblog.jp/wp-content/uploads/2015/11/radiru_del.py_.txt

iconv -f EUCJP -t UTF8 radiru_rec.py_.txt > radiru_rec.py
iconv -f EUCJP -t UTF8 radiru_noa.py_.txt > radiru_noa.py
iconv -f EUCJP -t UTF8 radiru_tag.py_.txt > radiru_tag.py
iconv -f EUCJP -t UTF8 radiru_check.py_.txt > radiru_check.py
iconv -f EUCJP -t UTF8 radiru_del.py_.txt > radiru_del.py
[/bash]

こんな感じでUTF-8に書き換えできる。

pythonコードの文字コード指定を変更する

[bash]
#! /usr/bin/python
# -*- coding: utf-8 -*-;
[/bash]

書き換え実施。

coding:euc-JP —> coding:utf-8
にしてるだけ。

Windowsの場合
サクラエディタで直接書き換えるなどするだけ

Linux側で作業する場合

[bash]vim radiru_rec.py[/bash]

このように開いて、書き換えを一つずつ行う。

vimは使いやすいけど使い方覚えてないと使えないですよね。

i キー insertモード 文字を入力できるようになる。
ESCキー insert解除 閲覧モードに変わる

ESCキーで解除している状態で
/wq   上書き保存

最初はこれだけ覚えておけば十分使える。

(1)フォルダの環境設定

radiru_check.pyの9行目を例にとる

[bash]
config = {‘script_dir’:’~/radiru_scripts’, ‘MP3_dir’:’~/MP3′,’DB_dir’:’~/MP3′}
[/bash]

この~/というのがフォルダの場所を示すのだが、指定したフォルダにファイルを置くことにした。

置き換え
~/
/home/pi/

具体的には
9行目

[bash]
config = {‘script_dir’:’/home/pi/radiru_scripts’, ‘MP3_dir’:’/home/pi/MP3′,’DB_dir’:’/home/pi/MP3′}
[/bash]

これをすべてのファイルで行っておく

(2)MP3をMP4に置き換え

上記の具体例テキストにもあるMP3フォルダは旧仕様のままMP3フォルダを使う人向け。
自分は、MP4フォルダを作ることにするので、文字列置き換えの全置き換えを実行する。

置き換え
MP3
MP4

MP4ファイルがMP3フォルダに保存されているのが気持ち悪いだけで実施しているのでMP3としてフォルダを利用したい場合は実施しなければ一つ作業が減るのでそれもOK

具体的にはこうなる
[bash]
config = {‘script_dir’:’/home/pi/radiru_scripts’, ‘MP4_dir’:’/home/pi/MP4′,’DB_dir’:’/home/pi/MP4′}
[/bash]

(3)euc-JP指定をutf-8に変更する

  • radiru_rec.py
  • radiru_noa.py
  • radiru_tag.py
  • radiru_check.py
  • radiru_del.py

これらはもともとeuc-jp環境で動作させようとしているものなのでutf-8ですべてやるようにしたい。

File “/bin/radiru_tag.py”, line 104, in main
ufile = file.decode(‘euc-jp’)
など、euc-jpの指定が多数あるのでこれを書き換える。
ちなみにこのeuc-jpには最初気づかなかった。録音テストをしたらサーバーメールが来て、なんかエラー有るよ?っておしえてくれたため。やっぱり試行錯誤はつきもの。

UTF-8に書き換え
(2)の作業と同じく文字列全置き換えで対処する。

置き換え
euc-JP
utf-8

これを全部の.pyファイルに実施

フォルダを作る

[bash]
mkdir radiru_scripts
chmod 777 radiru_scripts
mkdir MP4
chmod 777 MP4
[/bash]
ユーザーがpiでUTF-8環境かつMP4フォルダで利用できるように文字置き換えしたpythonデータは
このようになると思う。どうにも間違えてしまう場合は参考できるとおもう。

新環境を実行にする

まず、実行フォルダに4つのファイルをコピーします。
/home/pi/にradiru_rec.py等のファイルがそろっていることを前提にしています。

[bash]
sudo cp radiru*.py /usr/local/bin/
[/bash]

実行権限を付与します。
[bash]
sudo chmod +x /usr/local/bin/radiru_*.py
[/bash]

テスト実行してみよう

ここでテスト用の教材として番組表から何を録音するか探してみましょう。
http://www3.nhk.or.jp/netradio/hensei.html

[bash]
radiru_rec.py -w -r 5 -t 入門ビジネス英語 r2 11/30 9:15 15m
[/bash]

[bash]
入門ビジネス英語,r2, 2015-11-30 09:15:00,15
warning: commands will be executed using /bin/sh
job 116 at Mon Nov 30 09:15:00 2015
入門ビジネス英語,r2, 2015-12-07 09:15:00,15
warning: commands will be executed using /bin/sh
job 117 at Mon Dec 7 09:15:00 2015
入門ビジネス英語,r2, 2015-12-14 09:15:00,15
warning: commands will be executed using /bin/sh
job 118 at Mon Dec 14 09:15:00 2015
入門ビジネス英語,r2, 2015-12-21 09:15:00,15
warning: commands will be executed using /bin/sh
job 119 at Mon Dec 21 09:15:00 2015
入門ビジネス英語,r2, 2015-12-28 09:15:00,15
warning: commands will be executed using /bin/sh
job 120 at Mon Dec 28 09:15:00 2015
[/bash]

これで録音がOKでした。

実行方法の具体的な説明をすると・・・

入門ビジネス英語は
放送: 月・火曜日 午前9:15~9:30
再放送:同日 月・火曜日 午後0:40~0:55/午後11:20~11:35
再放送:土曜日 午前10:30~11:00(2回分)
このような放送なのです。

月火を1年間録音したい場合は
[bash]
radiru_rec.py -w -r 52 -t 入門ビジネス英語 r2 11/30 9:15 15m
radiru_rec.py -w -r 52 -t 入門ビジネス英語 r2 12/1 9:15 15m
[/bash]
-W 毎週録音
-r 52 毎週録音を52回繰り返す(1年)
-t タイトルを入れる。これはもちろん入門ビジネス英語
r2 NHKラジオ放送第2の意味
11/30 m/d形式でOK yyyy/m/dでもOK
9:15  24時間で入れる9:15から始まるから9:15 うろ覚えだが26:00的な書き方も許容してたような・・・
15m 15分録音という意味

土曜放送を1年間録音したい場合は
[bash]
radiru_rec.py -w -r 52 -t 入門ビジネス英語-再放送 r2 12/5 10:30 30m
[/bash]

こんな感じ。

とても便利なのだが、解説するような暇な人はいないだろう。
前回記事で録音したかったのにできなかった人など迷惑をかけてしまったので詳細にした。