TV録画予約視聴サーバーのスマホ対応(EPGRemote)

最終更新日: 2017.12.06

■概要

TV録画予約視聴サーバー(epgrec UNA)をスマホからも利用できるようにする。ここでは、EPGRemoteを導入して、PCと同様のこと(放送中番組の視聴、録画済番組の視聴、録画予約等)をスマホからもできるようにする。⇒スクリーンショット



■BonDriverProxy&recbondインストール

epgrec UNAとEPGRemoteでTVチューナーを共用できるようにするため、BonDriverProxy+recbondを導入する。

(1)BonDriverProxyインストール
[root@centos ~]# mkdir /usr/local/lib/BonDriver ← BonDriverProxyインストール先ディレクトリ作成

[root@centos ~]# git clone https://github.com/sudosan/BonDriverProxy_Linux ← BonDriverProxy_Linuxダウンロード

[root@centos ~]# cd BonDriverProxy_Linux/ ← BonDriverProxy_Linuxダウンロード先へ移動

[root@centos BonDriverProxy_Linux]# git clone https://github.com/dogeel/recbond ← recbondコマンドダウンロード

[root@centos BonDriverProxy_Linux]# patch < recbond/linux_ch.diff ← BonDriverへ全チャンネル対応パッチ施行
patching file BonDriver_DVB.cpp
Hunk #1 succeeded at 232 (offset 10 lines).
Hunk #2 succeeded at 244 (offset 10 lines).
Hunk #3 succeeded at 709 (offset -8 lines).
patching file BonDriver_LinuxPT.cpp
Hunk #1 succeeded at 251 (offset 10 lines).
Hunk #2 succeeded at 263 (offset 10 lines).
Hunk #3 succeeded at 598 (offset -8 lines).

[root@centos BonDriverProxy_Linux]# make ← BonDriverコンパイル

[root@centos BonDriverProxy_Linux]# cp BonDriver_LinuxPT.so /usr/local/lib/BonDriver/BonDriver_LinuxPT-S0.so ← BonDriverコピー(BS/CS波チューナー0用)
[root@centos BonDriverProxy_Linux]# cp BonDriver_LinuxPT.so /usr/local/lib/BonDriver/BonDriver_LinuxPT-S1.so ← BonDriverコピー(BS/CS波チューナー1用)
[root@centos BonDriverProxy_Linux]# cp BonDriver_LinuxPT.so /usr/local/lib/BonDriver/BonDriver_LinuxPT-T0.so ← BonDriverコピー(地上波チューナー0用)
[root@centos BonDriverProxy_Linux]# cp BonDriver_LinuxPT.so /usr/local/lib/BonDriver/BonDriver_LinuxPT-T1.so ← BonDriverコピー(地上波チューナー1用)

[root@centos BonDriverProxy_Linux]# vi BonDriver_LinuxPT.conf ← BonDriver設定ファイル編集
CSのチャンネル番号(2列目)を下記のとおり修正(CSチャンネルずれ対応)
※列間はタブ区切りのため下記をそのままコピーしないこと
; CS110
ND2     34      12      0
ND4     35      13      0
ND6     36      14      0
ND8     37      15      0
ND10    38      16      0
ND12    39      17      0
ND14    40      18      0
ND16    41      19      0
ND18    42      20      0
ND20    43      21      0
ND22    44      22      0
ND24    45      23      0

[root@centos BonDriverProxy_Linux]# cp BonDriver_LinuxPT.conf /usr/local/lib/BonDriver/BonDriver_LinuxPT-S0.so.conf ← BonDriver設定ファイルコピー(BS/CS波チューナー0用)
[root@centos BonDriverProxy_Linux]# cp BonDriver_LinuxPT.conf /usr/local/lib/BonDriver/BonDriver_LinuxPT-S1.so.conf ← BonDriver設定ファイルコピー(BS/CS波チューナー1用)
[root@centos BonDriverProxy_Linux]# cp BonDriver_LinuxPT.conf /usr/local/lib/BonDriver/BonDriver_LinuxPT-T0.so.conf ← BonDriver設定ファイルコピー(地上波チューナー0用)
[root@centos BonDriverProxy_Linux]# cp BonDriver_LinuxPT.conf /usr/local/lib/BonDriver/BonDriver_LinuxPT-T1.so.conf ← BonDriver設定ファイルコピー(地上波チューナー1用)

[root@centos BonDriverProxy_Linux]# sed -i "s/pt3video./pt3video0/g" /usr/local/lib/BonDriver/BonDriver_LinuxPT-S0.so.conf ← BonDriver設定ファイル中のTVチューナーデバイス名変更(BS/CS波チューナー0用)
[root@centos BonDriverProxy_Linux]# sed -i "s/pt3video./pt3video1/g" /usr/local/lib/BonDriver/BonDriver_LinuxPT-S1.so.conf ← BonDriver設定ファイル中のTVチューナーデバイス名変更(BS/CS波チューナー1用)
[root@centos BonDriverProxy_Linux]# sed -i "s/pt3video./pt3video2/g" /usr/local/lib/BonDriver/BonDriver_LinuxPT-T0.so.conf ← BonDriver設定ファイル中のTVチューナーデバイス名変更(地上波チューナー0用)
[root@centos BonDriverProxy_Linux]# sed -i "s/pt3video./pt3video3/g" /usr/local/lib/BonDriver/BonDriver_LinuxPT-T1.so.conf ← BonDriver設定ファイル中のTVチューナーデバイス名変更(地上波チューナー1用)

[root@centos BonDriverProxy_Linux]# grep pt3video /usr/local/lib/BonDriver/BonDriver_LinuxPT-*.so.conf ← BonDriver設定ファイル中のTVチューナーデバイス名確認
/usr/local/lib/BonDriver/BonDriver_LinuxPT-S0.so.conf:#DEVICE=/dev/pt3video0 ← BonDriver設定ファイル中のTVチューナーデバイス名(BS/CS波チューナー0用)
/usr/local/lib/BonDriver/BonDriver_LinuxPT-S1.so.conf:#DEVICE=/dev/pt3video1 ← BonDriver設定ファイル中のTVチューナーデバイス名(BS/CS波チューナー1用)
/usr/local/lib/BonDriver/BonDriver_LinuxPT-T0.so.conf:#DEVICE=/dev/pt3video2 ← BonDriver設定ファイル中のTVチューナーデバイス名(地上波チューナー0用)
/usr/local/lib/BonDriver/BonDriver_LinuxPT-T1.so.conf:#DEVICE=/dev/pt3video3 ← BonDriver設定ファイル中のTVチューナーデバイス名(地上波チューナー1用)

[root@centos BonDriverProxy_Linux]# cp BonDriverProxyEx /usr/local/lib/BonDriver/ ← BonDriverProxyExをコピー

[root@centos BonDriverProxy_Linux]# cp BonDriverProxyEx.conf /usr/local/lib/BonDriver/ ← BonDriverProxyEx設定ファイルをコピー

[root@centos BonDriverProxy_Linux]# sed -i 's/\/home\/unknown\/work/\/usr\/local\/lib\/BonDriver/g' /usr/local/lib/BonDriver/BonDriverProxyEx.conf ← BonDriverProxyEx設定ファイル中のBonDriverパス修正

[root@centos BonDriverProxy_Linux]# grep BonDriver /usr/local/lib/BonDriver/BonDriverProxyEx.conf ← BonDriverProxyEx設定ファイル中のBonDriverパス確認
00=PT-T;/usr/local/lib/BonDriver/BonDriver_LinuxPT-T0.so;/usr/local/lib/BonDriver/BonDriver_LinuxPT-T1.so ← BonDriverProxyEx設定ファイル中のBonDriverパス(地上波チューナー用)
01=PT-S;/usr/local/lib/BonDriver/BonDriver_LinuxPT-S0.so;/usr/local/lib/BonDriver/BonDriver_LinuxPT-S1.so ← BonDriverProxyEx設定ファイル中のBonDriverパス(BS/CS波チューナー用)

[root@centos BonDriverProxy_Linux]# cp BonDriver_Proxy.so /usr/local/lib/BonDriver/BonDriver_Proxy-S.so ← BonDriver_Proxyをコピー(BS/CS波チューナー用)
[root@centos BonDriverProxy_Linux]# cp BonDriver_Proxy.so /usr/local/lib/BonDriver/BonDriver_Proxy-T.so ← BonDriver_Proxyをコピー(地上波チューナー用)

[root@centos BonDriverProxy_Linux]# cp BonDriver_Proxy.conf /usr/local/lib/BonDriver/BonDriver_Proxy-S.so.conf ← BonDriver_Proxy設定ファイルをコピー(BS/CS波チューナー用)
[root@centos BonDriverProxy_Linux]# cp BonDriver_Proxy.conf /usr/local/lib/BonDriver/BonDriver_Proxy-T.so.conf ← BonDriver_Proxy設定ファイルをコピー(地上波チューナー用)

[root@centos BonDriverProxy_Linux]# sed -i "s/ADDRESS=.*/ADDRESS=127.0.0.1/g" /usr/local/lib/BonDriver/BonDriver_Proxy-S.so.conf ← BonDriver_Proxy設定ファイル中のサーバーIPアドレス修正(BS/CS波チューナー用)
[root@centos BonDriverProxy_Linux]# sed -i "s/ADDRESS=.*/ADDRESS=127.0.0.1/g" /usr/local/lib/BonDriver/BonDriver_Proxy-T.so.conf ← BonDriver_Proxy設定ファイル中のサーバーIPアドレス修正(地上波チューナー用)

[root@centos BonDriverProxy_Linux]# grep ADDRESS /usr/local/lib/BonDriver/BonDriver_Proxy-*.conf ← BonDriver_Proxy設定ファイル中のADDRESS確認
/usr/local/lib/BonDriver/BonDriver_Proxy-S.so.conf:ADDRESS=127.0.0.1 ← BonDriver_Proxy設定ファイル中のADDRESS(BS/CS波チューナー用)
/usr/local/lib/BonDriver/BonDriver_Proxy-S.so.conf:TARGET_ADDRESS=127.0.0.1 ← BonDriver_Proxy設定ファイル中のADDRESS(BS/CS波チューナー用)
/usr/local/lib/BonDriver/BonDriver_Proxy-S.so.conf:TARGET_MACADDRESS=127.0.0.1 ← BonDriver_Proxy設定ファイル中のADDRESS(BS/CS波チューナー用)
/usr/local/lib/BonDriver/BonDriver_Proxy-T.so.conf:ADDRESS=127.0.0.1 ← BonDriver_Proxy設定ファイル中のADDRESS(地上波チューナー用)
/usr/local/lib/BonDriver/BonDriver_Proxy-T.so.conf:TARGET_ADDRESS=127.0.0.1 ← BonDriver_Proxy設定ファイル中のADDRESS(地上波チューナー用)
/usr/local/lib/BonDriver/BonDriver_Proxy-T.so.conf:TARGET_MACADDRESS=127.0.0.1 ← BonDriver_Proxy設定ファイル中のADDRESS(地上波チューナー用)

[root@centos BonDriverProxy_Linux]# sed -i "s/BONDRIVER=.*/BONDRIVER=PT-S/g" /usr/local/lib/BonDriver/BonDriver_Proxy-S.so.conf ← BonDriver_Proxy設定ファイル中のBONDRIVER名修正(BS/CS波チューナー用)
[root@centos BonDriverProxy_Linux]# sed -i "s/BONDRIVER=.*/BONDRIVER=PT-T/g" /usr/local/lib/BonDriver/BonDriver_Proxy-T.so.conf ← BonDriver_Proxy設定ファイル中のBONDRIVER名修正(地上波チューナー用)

[root@centos BonDriverProxy_Linux]# grep BONDRIVER /usr/local/lib/BonDriver/BonDriver_Proxy-*.conf ← BonDriver_Proxy設定ファイル中のBONDRIVER名確認
/usr/local/lib/BonDriver/BonDriver_Proxy-S.so.conf:BONDRIVER=PT-S ← BonDriver_Proxy設定ファイル中のBONDRIVER名(BS/CS波チューナー用)
/usr/local/lib/BonDriver/BonDriver_Proxy-T.so.conf:BONDRIVER=PT-T ← BonDriver_Proxy設定ファイル中のBONDRIVER名(地上波チューナー用)

(2)recbondインストール
[root@centos BonDriverProxy_Linux]# cd recbond/ ← recbondコマンドダウンロード先へ移動


[root@centos recbond]# ./autogen.sh && ./configure --enable-b25 && make && make install ← recbondコマンドインストール

[root@centos recbond]# cd ← ホームディレクトリへ戻る

[root@centos ~]# rm -rf BonDriverProxy_Linux/ ← ダウンロードディレクトリを削除

■BonDriverProxyEx起動

[root@centos ~]# vi /etc/systemd/system/BonDriverProxyEx.service ← BonDriverProxyEx起動スクリプト作成
[Unit]
Description=BonDriverProxyEx
After=network.target

[Service]
Type=forking
User=root
ExecStart=/usr/local/lib/BonDriver/BonDriverProxyEx 127.0.0.1 1192
Restart=always

[Install]
WantedBy=multi-user.target

[root@centos ~]# systemctl start BonDriverProxyEx ← BonDriverProxyEx起動

[root@centos ~]# systemctl enable BonDriverProxyEx ← BonDriverProxyEx自動起動設定

■BonDriverProxy&recbond確認

[root@centos ~]# recbond --driver /usr/local/lib/BonDriver/BonDriver_Proxy-T.so --b25 27 5 test.ts ← 27チャンネル(関東圏のNHK総合(注))を10秒間録画してtest.tsという名前で保存
using driver: /usr/local/lib/BonDriver/BonDriver_Proxy-T.so
using B25...
pid = 22522
driver = /usr/local/lib/BonDriver/BonDriver_Proxy-T.so
C/N = 32.574532dB
Recording...
Recorded 6sec
(注)チャンネルは地域によって異なるので、地上デジタル放送チャンネル一覧表で確認すること
例として、関東で東京スカイツリーから電波を受信している場合、NHK総合のチャンネル番号は27

WinSCPで録画ファイルをダウンロードしてVLC media playerで再生できるか確認

[root@centos ~]# rm -f test.ts ← 録画ファイル削除



■EPGRemoteインストール

[root@centos ~]# yum -y install nodejs ← EPGRemoteに必要なパッケージをインストール

[root@centos ~]# cd /usr/local/ ← EPGRemoteインストール先へ移動

[root@centos local]# git clone https://github.com/l3tnun/EPGRemote.git ← EPGRemoteダウンロード

[root@centos local]# cd EPGRemote ← EPGRemoteダウンロード先へ移動

[root@centos EPGRemote]# npm install && npm run build ← EPGRemoteインストール

■EPGRemote設定

[root@centos EPGRemote]# cp -r php/epgremote /var/www/epgrec/ ← EPGRemote用PHPをepgrec UNAインストール先へコピー

[root@centos EPGRemote]# cp config/config.json.sample config/config.json ← EPGRemote設定ファイルをサンプルよりコピー

[root@centos EPGRemote]# cp config/logConfig.json.sample config/logConfig.json ← EPGRemoteログ設定ファイルをサンプルよりコピー

[root@centos EPGRemote]# vi config/config.json ← EPGRemote設定ファイル編集
    "enableLiveStream" : false, ← 放送中番組のHLS配信を無効化
    "enableLiveHttpStream" : true, ← スマホからの放送中番組の視聴を有効化
    "enableLivePCHttpStream" : false, ← PCからの放送中番組の視聴を無効化※PCからの放送中番組の視聴はepgrec UNAで行う
    "enableRecordedStream" : false, ← 録画済番組のHLS配信を無効化※録画済番組の視聴はTSファイルを再生

    "broadcast" :  { "GR" : true, "BS" : true, "CS" : true, "EX" : false }, ← 視聴可能な放送波をepgrec UNAに合わせてtrueにする

    "liveHttpVideoSetting" : [
        {
            "id"      : 1,
            "name"    : "無変換(main)",
            "command" : "/usr/bin/ffmpeg -re -dual_mono_mode main -i pipe:0 -acodec libfdk_aac -ar 48000 -ab 192k -ac 2 -vcodec copy -f mpegts -movflags frag_keyframe+empty_moov pipe:1" ← ffmpegコマンドパス変更
        },
        {
            "id"      : 2,
            "name"    : "無変換(sub)",
            "command" : "/usr/bin/ffmpeg -re -dual_mono_mode sub -i pipe:0 -acodec libfdk_aac -ar 48000 -ab 192k -ac 2 -vcodec copy -f mpegts -movflags frag_keyframe+empty_moov pipe:1" ← ffmpegコマンドパス変更
        },
        {
            "id"      : 3,
            "name"    : "720x480(main)",
            "command" : "/usr/bin/ffmpeg -re -dual_mono_mode main -i pipe:0 -acodec libfdk_aac -ar 48000 -ab 192k -ac 2 -vcodec libx264 -s 720x480 -filter:v yadif -aspect 16:9 -vb 1500k -f mpegts -movflags frag_keyframe+empty_moov pipe:1" ← ffmpegコマンドパス変更
        },
        {
            "id"      : 4,
            "name"    : "720x480(sub)",
            "command" : "/usr/bin/ffmpeg -re -dual_mono_mode sub -i pipe:0 -acodec libfdk_aac -ar 48000 -ab 192k -ac 2 -vcodec libx264 -s 720x480 -filter:v yadif -aspect 16:9 -vb 1500k -f mpegts -movflags frag_keyframe+empty_moov pipe:1" ← ffmpegコマンドパス変更
        }
    ],

    −−チューナー定義差し替え(ここから)−−
    "tuners": [
        {
            "id"        : 1,
            "name"      : "PT3-S",
            "types"     : [ "BS", "CS" ],
            "command"   : "/usr/local/bin/recbond --driver /usr/local/lib/BonDriver/BonDriver_Proxy-S.so --b25 --sid   - - "
        },
        {
            "id"        : 2,
            "name"      : "PT3-T",
            "types"     : [ "GR" ],
            "command"   : "/usr/local/bin/recbond --driver /usr/local/lib/BonDriver/BonDriver_Proxy-T.so --b25 --sid   - - "
        }
    ],
    −−チューナー定義差し替え(ここまで)−−

    "EpgrecDatabaseConfig" : {
        "host": "localhost",
        "user": "epgrec",
        "password": "xxxxxxxx", ← epgrec UNA用DBパスワードを指定
        "database": "epgrec",
        "timeout": 5000
    },

    "epgrecConfig" : {
        "host" : "http://127.0.0.1/epgrec/", ← epgrec UNAのアドレスを指定
        "openHost": "http://192.168.0.2:1180",
        "rootPath": "/var/www/epgrec",
        "videoPath" : "/var/www/epgrec/video",
        "thumbsPath" : "/var/www/epgrec/thumbs",
        "recMode" : [
                        { "id" : 0, "name" : "Full TS" },
                        { "id" : 1, "name" : "HD TS" },
                        { "id" : 2, "name" : "SD TS" },
                        { "id" : 3, "name" : "H264-HD" },
                        { "id" : 4, "name" : "H264-SD" }
                    ],
        "recModeDefaultId" : 1, ← デフォルトの録画形式をepgrec UNAと同じ"HD TS"にする
        "startTranscodeId" : 3
    },

[root@centos EPGRemote]# vi config/logConfig.json ← EPGRemoteログ設定ファイル編集
        {
            "type":     "file",
            "category": "system",
            "maxLogSize": 1048576,
            "backups": 3,
            "category": "system",
            "filename": "/usr/local/EPGRemote/logs/system.log", ← ログファイル名修正(system.log)
            "pattern":  "-yyyy-MM-dd"
        },
        {
            "type":     "file",
            "category": "access",
            "maxLogSize": 1048576,
            "backups": 3,
            "category": "access",
            "filename": "/usr/local/EPGRemote/logs/access.log", ← ログファイル名修正(access.log)
            "pattern":  "-yyyy-MM-dd"
        },
        {
            "type":     "file",
            "category": "stream",
            "maxLogSize": 1048576,
            "backups": 3,
            "category": "stream",
            "filename": "/usr/local/EPGRemote/logs/stream.log", ← ログファイル名修正(stream.log)
            "pattern":  "-yyyy-MM-dd"
        },

[root@centos EPGRemote]# cd ← ホームディレクトリへ戻る

■EPGRemote起動

[root@centos ~]# npm install pm2 -g ← pm2インストール

[root@centos ~]# pm2 start /usr/local/EPGRemote/build-server/index.js --name epgremote ← pm2でEPGRemote起動

[root@centos ~]# pm2 startup systemd ← pm2自動起動設定化

[root@centos ~]# systemctl enable pm2-root ← pm2自動起動設定

■epgrec UNA設定

[root@centos recbond]# vi /var/www/epgrec/config.php ← epgrec UNA設定ファイル編集
define( 'TUNER_UNIT1', 0 ); ← チューナー数をゼロにする

$rec_cmds = array(
        // PTn(recpt1)
        0 => array(
                'cmd'      => '/usr/local/bin/recpt1',          // コマンドフルパス
                'b25'      => ' --b25 --strip',                         // B25オプション
                'sidEXT'   => '',                                                       // 録画時--sid追加オプション
                'falldely' => 0,                                                        // 録画コマンド失敗時のwait(秒)
                'epgTs'    => TRUE,                                                     // EPG用TS出力パッチ使用時はTRUE
                'cntrl'    => TRUE,                                                     // recpt1ctl対応パッチ使用時はTRUE
                'httpS'    => FALSE,                                            // httpサーバー機能対応時はTRUE
        ),
        // DVB(recdvb)
        1 => array(
                'cmd'      => '/usr/local/bin/recdvb',
                'b25'      => ' --b25 --strip',
                'sidEXT'   => '',
                'falldely' => 0,
                'epgTs'    => TRUE,
                'cntrl'    => TRUE,
                'httpS'    => TRUE,
        ),
        // recfsusb2n
        2 => array(
                'cmd'      => '/usr/local/bin/recfsusb2n',
                'b25'      => ' --b25',
                'sidEXT'   => '',
                'falldely' => 10,
                'epgTs'    => FALSE,
                'cntrl'    => FALSE,
                'httpS'    => FALSE,
        ),
        // recfriio
        3 => array(
                'cmd'      => '/usr/local/bin/recfriio',
                'b25'      => ' --b25',
                'sidEXT'   => '',
                'falldely' => 0,
                'epgTs'    => FALSE,
                'cntrl'    => FALSE,
                'httpS'    => FALSE,
        ),
        −−recbondコマンド定義追加(ここから)−−
        4 => array(
                'cmd'      => '/usr/local/bin/recbond',
                'b25'      => ' --b25 --strip',
                'sidEXT'   => '',
                'falldely' => 0,
                'epgTs'    => TRUE,
                'cntrl'    => TRUE,
                'httpS'    => TRUE,
        ),
        −−recbondコマンド定義追加(ここまで)−−

);

$OTHER_TUNERS_CHARA = array(
        // 地デジ
        'GR' => array(
                0 => array(
                        'reccmd'   => 4, ← 使用コマンドをrecbondにする(地上波チューナー0用)
                        'device'   => '--driver /usr/local/lib/BonDriver/BonDriver_Proxy-T.so', ← recbondコマンドオプション(driver)を指定(地上波チューナー用)
                ),
                1 => array(
                        'reccmd'   => 4, ← 使用コマンドをrecbondにする(地上波チューナー1用)
                        'device'   => '--driver /usr/local/lib/BonDriver/BonDriver_Proxy-T.so', ← recbondコマンドオプション(driver)を指定(地上波チューナー用)
                ),
        ),
        // 衛星(BS/CS)
        'BS' => array(
                0 => array(
                        'reccmd'   => 4, ← 使用コマンドをrecbondにする(BS/CS波チューナー0用)
                        'device'   => '--driver /usr/local/lib/BonDriver/BonDriver_Proxy-S.so', ← recbondコマンドオプション(driver)を指定(BS/CS波チューナー用)
                ),
                1 => array(
                        'reccmd'   => 4, ← 使用コマンドをrecbondにする(BS/CS波チューナー1用)
                        'device'   => '--driver /usr/local/lib/BonDriver/BonDriver_Proxy-S.so', ← recbondコマンドオプション(driver)を指定(BS/CS波チューナー用)
                ),
        )
);

■EPGRemote確認

□スマホからhttp://サーバーIPアドレス:8888へアクセスしてEPGRemoteページが表示されること
□スマホから放送中番組を視聴できること※あらかじめVLC for Mobile - VideoLAN(iOSの場合)またはMX Playerアプリ(Android)をインストールしておくこと
□スマホから録画済番組を視聴できること※あらかじめInfuse 5 ~ an elegant video player - Firecore, LLC(iOSの場合)またはMX Playerアプリ(Android)をインストールしておくこと
□スマホからその他操作(番組表閲覧、録画予約、録画予約一覧閲覧、番組検索、epgrec動作ログ閲覧)が行えること


■関連コンテンツ




▲このページのトップへ戻る

Copyright© 2005-2017 fallenangels, All rights reserved.
ご自由にリンクしてください(連絡は不要です)
本ページへのご意見・ご要望、誤字・脱字・リンク切れ等のご連絡はこちらからお願いします