WordPressワードプレスのバックアップ

一応ブログを始めるときにmysqlのバックアップははじめているのですが、
バックアップしているだけで、リストアできるのか全く謎です 笑
一応試しに軽くリストアしたことはありましたが、
ちゃんとまとめてなかったので、おさらいとして試しながらメモしたいと思います。

mysqlのバックアップ

バックアップはそんなに難しくありません。
mysqldumpというコマンドを使うとテキストファイルにダンプしてくれます。

/usr/local/bin/mysqldump -Q -h mysq****.db.sakura.ne.jp -uアカウント -pパスワード データベース名 > dump.sql

↓これはさくらインターネットのデータベース一覧画面です。

これを見ながら適宜書き換えて実行します。
アカウントとパスワードはさくらインターネットのログイン時に使うやつじゃなくて
データベースを作るときに作ったやつなので、注意です。
データベース自体は別のサーバーのようですので、アドレスが書かれています。
ラズパイ(でラズパイにDBを作っている場合)の場合にはlocalhostとなります。
さくらインターネットの場合にはデータベース名が「ユーザー名_****」のような形になるようです。自由に、という訳にはいきません。
あと、-uとか-pのあとに空白を入れないのがミソです。
入れるとうまくログインできませんよ。

-Qは何かと思いましたが、

-Q
–quote-names
DB名、テーブル名、カラム名などの識別子をバックティック文字で囲む。これらの識別子にMySQLの予約後が含まれていても問題なく動作するようになる

ということなので、つけておいたほうが無難です。

 

raspberrypi php7+NGinxでワードプレスを運用していたけどアップデートしたら動かなくなった

しばらく実行していなかったので、
raspbianのアップデートアップグレードを実行しました。

sudo apt update
sudo apt upgrade -y

すると、、、やってしまいました。WordPressが開けなくなりました。

Your PHP installation appears to be missing the MySQL extension which is required by WordPress.
あなたのPHPのインストールには、ワードプレスによって要求されたMySQLの拡張を利用できないようです。

MySQLの拡張?

php-mysqlというのが入っていないのでしょうか
今まで動いていたのに、おかしいですね・・・。

$ sudo apt-get install php-mysql
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
php-mysql はすでに最新版です。
アップグレード: 0 個、新規インストール: 0 個、削除: 0 個、保留: 1 個。

インストール済み・・・がっかり。

phpになんのモジュールが入っているかは-mでわかるそうです。

php -m|grep mysql

無い・・・mysqlのモジュールが入ってい無いと・・・?
php-mysqlはインストールされているのに、phpに入ってないということは、バージョン違い??

試しにさくらインターネット(ベーシック)にて試してみると・・・

$ php -m|grep mysql
mysqli
mysqlnd
pdo_mysql

ちゃんと入っていますね。

試しにphp関連のパッケージを確認してみます。

$ dpkg -l|grep php
ii dh-php 0.21~bpo8+1 all debhelper add-on to handle PHP PECL extensions
ii php-common 1:53+0~20170804100549.2+jessie~1.gbpa3f349 all Common files for PHP packages
ii php-mysql 1:7.1+53+0~20170804100549.2+jessie~1.gbpa3f349 all MySQL module for PHP [default]
ii php-pear 5.6.30+dfsg-0+deb8u1 all PEAR - PHP Extension and Application Repository
ii php5 5.6.30+dfsg-0+deb8u1 all server-side, HTML-embedded scripting language (metapackage)
ii php5-cgi 5.6.30+dfsg-0+deb8u1 armhf server-side, HTML-embedded scripting language (CGI binary)
ii php5-cli 5.6.30+dfsg-0+deb8u1 armhf command-line interpreter for the php5 scripting language
ii php5-common 5.6.30+dfsg-0+deb8u1 armhf Common files for packages built from the php5 source
ii php5-fpm 5.6.30+dfsg-0+deb8u1 armhf server-side, HTML-embedded scripting language (FPM-CGI binary)
ii php5-json 1.3.6-1 armhf JSON module for php5
ii php5-mysql 5.6.30+dfsg-0+deb8u1 armhf MySQL module for php5
ii php5-readline 5.6.30+dfsg-0+deb8u1 armhf Readline module for php5
ii php7.0 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 all server-side, HTML-embedded scripting language (metapackage)
ii php7.0-cli 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf command-line interpreter for the PHP scripting language
ii php7.0-common 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf documentation, examples and common module for PHP
ii php7.0-dev 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf Files for PHP7.0 module development
ii php7.0-fpm 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf server-side, HTML-embedded scripting language (FPM-CGI binary)
ii php7.0-json 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf JSON module for PHP
rc php7.0-mysql 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf MySQL module for PHP
ii php7.0-opcache 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf Zend OpCache module for PHP
ii php7.0-readline 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 armhf readline module for PHP
ii php7.1-common 7.1.8-2+0~20170804100723.7+jessie~1.gbpae7f04 armhf documentation, examples and common module for PHP
ii php7.1-mysql 7.1.8-2+0~20170804100723.7+jessie~1.gbpae7f04 armhf MySQL module for PHP
ii pkg-php-tools 1.28 all various packaging tools and scripts for PHP packages

あれれ?なにかおかしいです。
まずphpのバージョンが7.0です。

$ php -v
PHP 7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206 (cli) (built: Aug 10 2017 14:34:58) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206, Copyright (c) 1999-2017, by Zend Technologies

それなのにいくつか7.1用のモジュールが入っていますね。
しかも、当該の「php7.0-mysql」は削除(rc)されてしまっています。
php7.1-mysqlがインストールされていますが、おそらくこれだとバージョン違いになってしまうのでしょう。

古いバージョンが入るかどうか不安ですがインストールしてみます。

$ sudo apt-get install php7.0-mysql
[sudo] password for mlin:
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
以下のパッケージが新たにインストールされます:
php7.0-mysql
アップグレード: 0 個、新規インストール: 1 個、削除: 0 個、保留: 1 個。
105 kB 中 0 B のアーカイブを取得する必要があります。
この操作後に追加で 432 kB のディスク容量が消費されます。
以前に未選択のパッケージ php7.0-mysql を選択しています。
(データベースを読み込んでいます ... 現在 118917 個のファイルとディレクトリがインストールされています。)
.../php7.0-mysql_7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206_armhf.deb を展開する準備をしています ...
php7.0-mysql (7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206) を展開しています...
php7.0-fpm (7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206) のトリガを処理しています ...
php7.0-mysql (7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206) を設定しています ...
php7.0-fpm (7.0.22-2+0~20170804100528.5+jessie~1.gbpdea206) のトリガを処理しています ...

入った!

そして、無事起動!!Wordpressが開きました!

モジュールさえ入ってしまえば再起動は不要なようでした。

あー、よかった 汗

Solarisの社員がクビ?!

ちょっと驚きのニュースがはいってきました。

米オラクルがSolaris関連の従業員をほぼ全員レイオフしたのではないかと海外で報道されています。

レイオフって何じゃ?ってことですけど、「一時解雇」ということで、業績が好転するまで休んでね、ってことらしいです。再雇用が前提である部分がリストラとの違いです。業績が悪くなったからと言って解雇していたら技術が保てないので、アメリカではレイオフが一般的だそうです。その間の給料は少しは保証されるのかな?

かなり景気が悪いってことですね。好転することなどあるのか・・・?
Solarisといえば、サーバーOSとしてデフォルトでした。
UNIXといえばSolarisを指すぐらい・・・。

無料になったSolaris

たしかSolarisは7から無料でダウンロードできるようになったと思いました。
ちょうど勤め先でもSolarisを使い始めた頃で、SPARC版とX86版で違いはありましたが、
中古のPCをにインストールして操作方法を勉強したりしました。
結構硬派なOSでデスクトップが表示されたときは感動しました。
自宅でネットワーク接続まで成功し、それだけでかなり興奮していた覚えがあります 汗
今ではLinuxのドライバがWindows以上に強くなっているので、
デバイスが認識しないということはほとんどありません。そういう苦労はなくなってしまいました。
でも、この頃のSolarisって、ネットを繋げる、っていうところにすでに壁がありまして、
でもそれを何とかするのが面白かった。。。
それにしても、WindowsもMacも有料が当たり前でしたから、Solarisのような高価なOSが無料っていうのは衝撃的でしたね。

まだ無料!Solaris!!

さよなら・・・と思ったけど、ちょっと調べてみました。
いまのバージョンは11でした。ダウンロードできる!

Oracle Solarisダウンロード

記念にインストールしてみましょうかね。今時はVMですけど。
あまり使いみちが思いつかないですけど・・・。

ラジコの録音、東京の放送を取得する一案(4 ラジコのチャンネルIDの調べ方

そもそも自分のネットワークがラジコ的にどこの地域だと認識されているのかを知る方法はあるのでしょうか。
一番簡単なのはラジコに接続して見るのが手っ取り早いです。
ところが、はっきりと「○○県」と出るわけではないので、人によっては???となりそうです。
というわけでその辺りの基本的(だけどあまりオープンじゃない)情報の知り方をレビューします。

自分のネットワークがどこになっているか

地域判定について

ここにアクセスします。
現在の地域判定結果、となっているのがラジコで認識している地域です。
ちゃんと自分の地域になっているでしょうか?

スマホやタブレットであれば正常に認識されている可能性は高いのですが、
PCだとおかしい場合が多いです。
現に私は愛知県になっています。
この下の修正後の地域判定結果に正しい地域を選んで送信すると
2?3日で修正してくれます。ところが、、、しばらくするとまた戻ってしまうのでいたちごっこです。

ま、とりあえず、どこと認識されているかはこれでわかるのです。

チャンネルIDはどうやって調べるのか?

エリアIDから調べます。
エリアIDは先程の地域判定のページのソースからわかります。

このエリアIDを使って以下のURLにアクセスします。
東京の場合です。
http://radiko.jp/v2/station/list/JP13.xml
このJP13の部分を適宜変更します。
そうすると、XMLが表示されます。<ID>の部分がチャンネルIDとなり、録音に使用します。

JP1  北海道
JP2  青森県
JP3  岩手県
JP4  宮城県
JP5  秋田県
JP6  山形県
JP7  福島県
JP8  茨城県
JP9  栃木県
JP10 群馬県
JP11 埼玉県
JP12 千葉県
JP13 東京都
JP14 神奈川県
JP15 新潟県
JP16 富山県
JP17 石川県
JP18 福井県
JP19 山梨県
JP20 長野県
JP21 岐阜県
JP22 静岡県
JP23 愛知県
JP24 三重県
JP25 滋賀県
JP26 京都府
JP27 大阪府
JP28 兵庫県
JP29 奈良県
JP30 和歌山県
JP31 鳥取県
JP32 島根県
JP33 岡山県
JP34 広島県
JP35 山口県
JP36 徳島県
JP37 香川県
JP38 愛媛県
JP39 高知県
JP40 福岡県
JP41 佐賀県
JP42 長崎県
JP43 熊本県
JP44 大分県
JP45 宮崎県
JP46 鹿児島県
JP47 沖縄県

ラジコの録音、東京の放送を取得する一案(3 トークンだけ取得

トークンを取得するだけのスクリプトを作ります。

最終的にちゃんと取得できているかを確認するためのrtmpdumpコマンドをエコー(表示)しています。

#!/bin/sh

# TBS:TBSラジオ
# QRR:文化放送
# LFR:ニッポン放送
# NSB:ラジオNIKKEI
# INT:INTER FM
# FMT:TOKYO FM
# FMJ:J-WAVE
# JORF:ラジオ日本
# BAYFM78:bayfm78
# NACK5:NACK5
# YFM:FMヨコハマ

if [ $# -eq 1 ]; then
  CHANNEL=$1
else
  echo "usage : $0 CHANNEL"
  exit 1
fi

CHANNEL=$1

RTMPDUMP=/usr/local/bin/rtmpdump
FFMPEG=/usr/bin/ffmpeg
MP3PATH=/home/mlin/html/mp3/

OUTFILEBASEPATH=./
OUTFILENAME=${OUTFILEBASEPATH}/`date +%Y-%m-%d`
FLVFILEEXT=".flv"
AACFILEEXT=".aac"
MP3FILEEXT=".mp3"

MARGINTIMEMIN=1
# RECTIME=`expr ${RECTIMEMIN} \* 60 + ${MARGINTIMEMIN} \* 2 \* 30`

# 30sec wait
# echo "===== `date` Wait 30sec. ====="
# for f1 in 0
# do
  # for f2 in 9 8 7 6 5 4 3 2 1 0
  # do
    # echo -n "$f1$f2\r"
    # sleep 1
  # done
# done

#開始時刻
START=`date +%s` 

cd ${OUTFILEBASEPATH}

playerurl=http://radiko.jp/player/swf/player_3.0.0.01.swf
playerfile=./player.swf
keyfile=./authkey.png

#
# get player
#
if [ ! -f $playerfile ]; then
  wget -q -O $playerfile $playerurl

  if [ $? -ne 0 ]; then
    echo "failed get player"
    exit 1
  fi
fi

#
# get keydata (need swftools)
#
if [ ! -f $keyfile ]; then
  swfextract -b 14 $playerfile -o $keyfile

  if [ ! -f $keyfile ]; then
    echo "failed get keydata"
    exit 1
  fi
fi

if [ -f auth1_fms_${CHANNEL} ]; then
  rm -f auth1_fms_${CHANNEL}
fi

#
# access auth1_fms
#
for var in 3 5 7 9 10 0
do
  wget -q \
       --header="pragma: no-cache" \
       --header="X-Radiko-App: pc_1" \
       --header="X-Radiko-App-Version: 2.0.1" \
       --header="X-Radiko-User: test-stream" \
       --header="X-Radiko-Device: pc" \
       --post-data='\r\n' \
       --no-check-certificate \
       --save-headers \
       --tries=5 \
       --timeout=5 \
       -O auth1_fms_${CHANNEL} \
       https://radiko.jp/v2/api/auth1_fms

  if [ $? -ne 0 ]; then
    if [ $var -ne 0 ]; then
      # echo "failed auth1 process [$var sec sleep...retry]"
      sleep $var
    else
      # echo "[[[[ Failed auth1 process --- `date` --- ]]]]"
      exit;
    fi
  else
    # echo "sucsess auth1 process"
    break;
  fi
done
#
# get partial key
#
authtoken=`cat auth1_fms_${CHANNEL} | perl -ne 'print $1 if(/x-radiko-authtoken: ([\w-]+)/i)'`
offset=`cat auth1_fms_${CHANNEL} | perl -ne 'print $1 if(/x-radiko-keyoffset: (\d+)/i)'`
length=`cat auth1_fms_${CHANNEL} | perl -ne 'print $1 if(/x-radiko-keylength: (\d+)/i)'`

partialkey=`dd if=$keyfile bs=1 skip=${offset} count=${length} 2> /dev/null | base64`

# echo "authtoken: ${authtoken} \noffset: ${offset} length: ${length} \npartialkey: $partialkey"
echo ${authtoken}

rm -f auth1_fms_${CHANNEL}

if [ -f auth2_fms_${CHANNEL} ]; then
  rm -f auth2_fms_${CHANNEL}
fi

#
# access auth2_fms
#
for var in 3 5 7 9 10 0
do
  wget -q \
       --header="pragma: no-cache" \
       --header="X-Radiko-App: pc_1" \
       --header="X-Radiko-App-Version: 2.0.1" \
       --header="X-Radiko-User: test-stream" \
       --header="X-Radiko-Device: pc" \
       --header="X-Radiko-Authtoken: ${authtoken}" \
       --header="X-Radiko-Partialkey: ${partialkey}" \
       --post-data='\r\n' \
       --no-check-certificate \
       --tries=5 \
       --timeout=5 \
       -O auth2_fms_${CHANNEL} \
       https://radiko.jp/v2/api/auth2_fms

  if [ $? -ne 0 -o ! -f auth2_fms_${CHANNEL} ]; then
    if [ $var -ne 0 ]; then
      echo "failed auth2 process [$var sec sleep...retry]"
      sleep $var
    else
      echo "[[[[ Failed auth2 process --- `date` --- ]]]]"
      exit;
    fi
  else
    echo "sucsess auth2 process"
    break;
  fi
done

echo "authentication success"

areaid=`cat auth2_fms_${CHANNEL} | perl -ne 'print $1 if(/^([^,]+),/i)'`
echo "areaid: $areaid"

rm -f auth2_fms_${CHANNEL}

echo rtmpdump -v \
              -r "rtmpe://f-radiko.smartstream.ne.jp" \
              --playpath "simul-stream.stream" \
              --app "${CHANNEL}/_definst_" \
              -W $playerurl \
              -C S:"" -C S:"" -C S:"" -C S:$authtoken \
              --live \
              --flv ./test2.flv \
              --stop 30
exit

少し工夫した部分は
  for var in 3 5 7 9 10 0
の部分ですね。
トークンを得る際にエラーが出る場合を考慮して5回やり直します。
3.5.7と数値が書いてあるのは、その秒数スリープさせるためです、
連続でエラーになった場合には徐々に待ち時間を長くしています。
最後の0で諦める、と言った形です。

ラジコの録音、東京の放送を取得する一案(2 サーバークライアントの基本

ソケット通信を試します。
結構難しいのですが、以下のサンプルを使ってなんとかします。

要は、クライアントからチャンネル情報を送って、
サーバーからトークンを返すだけ、なのでこれで良いのです。

サーバー

さくらインターネットの方でサーバーを起動させます。

 

#!/usr/bin/perl

use strict;
use warnings;
use Socket;
use Fcntl qw(:flock);

# 2. 受付用ソケット情報の作成
my $local_port = 9000;

#ロック
open  LOCK , "+>" , "./serverlock.${local_port}";
if ( flock LOCK ,LOCK_EX|LOCK_NB ){
    print "OK LOCK!\n";
}else{
    print "NG LOCK!$!\n";
    exit ;
}

# サーバ

# 1. 受付用ソケットの作成

my $sock_receive;
socket($sock_receive, PF_INET, SOCK_STREAM, getprotobyname( 'tcp' ))
  or die "Cannot create socket: $!";


my $pack_addr = sockaddr_in($local_port, INADDR_ANY);

# 3. 受付用ソケットと受付用ソケット情報を結びつける
bind($sock_receive, $pack_addr)
  or die "Cannot bind: $!";

# 4. 接続を受け付ける準備をする。
listen($sock_receive, SOMAXCONN)
  or die "Cannot listen: $!";

# 5. 接続を受け付けて応答する。
my $sock_client; # クライアントとの通信用のソケット

while (accept( $sock_client, $sock_receive )) {
  my $content;
  
  # クライアントからのデータの読み込み
  while (my $line = <$sock_client>) {
    $content .= $line;
  }

  my $ret="Server."
  
  # クライアントへのデータの書き込み
  print $sock_client "$ret";
  close $sock_client;
}

$contentという変数にクライアントからのデータを取得できます。
クライアントにデータを戻すには、
print $sock_client “$ret”;
で行っています。この例は単に「Server.」と返しています。

クライアント

ラズパイからクライアントを起動します。
サーバーに繋いでサーバーからデータを受け取ります。

#!/usr/bin/perl

use strict;
use Socket;

my $CH="";
if (@ARGV == 1){
    $CH=$ARGV[0];
}else{
    print "usage : ./$0 [CHANNEL]\n";
    exit 1;
}

# クライアント
# 1. ソケットの作成
my $sock;
socket($sock, PF_INET, SOCK_STREAM, getprotobyname('tcp' ))
  or die "Cannot create socket: $!";

# 2. ソケット情報の作成

# 接続先のホスト名
my $remote_host = 'サーバーのドメイン';
my $packed_remote_host = inet_aton($remote_host)
  or die "Cannot pack $remote_host: $!";

# 接続先のポート番号
my $remote_port = 9000;

# ホスト名とポート番号をパック
my $sock_addr = sockaddr_in($remote_port, $packed_remote_host)
  or die "Cannot pack $remote_host:$remote_port: $!";

# 3. ソケットを使って接続
connect($sock, $sock_addr)
  or die "Cannot connect $remote_host:$remote_port: $!";

# 4. データの書き込み
# 書き込みバッファリングをしない。
my $old_handle = select $sock;
$| = 1; 
select $old_handle;

print $sock "Hello";

# 書き込みを終了する
shutdown $sock, 1;

# 5. データの読み込み
my $cnt=0;
while (my $line = <$sock>) {
  print "$cnt $line";
  $cnt++;
}

# 6. ソケットを閉じる
close $sock;

サーバーにデータを送るには
print $sock “Hello”;
でやっています。
そのあとの
print “$cnt $line”;
でサーバーからの返答を受け取るというわけです。

ラジコの録音、東京の放送を取得する一案(1

そもそも、radikoの録音はどうやっているのでしょうか。

まずはトークンを取得します。

TBSラジオの例です。

wget -q '--header=pragma: no-cache' '--header=X-Radiko-App: pc_1' \
'--header=X-Radiko-App-Version: 2.0.1' '--header=X-Radiko-User: test-stream' \
'--header=X-Radiko-Device: pc' '--post-data=\r\n' \
--no-check-certificate --save-headers --tries=5 --timeout=5 \
-O auth1_fms https://radiko.jp/v2/api/auth1_fms

これでトークンがとれます。

トークン

cat auth1_fms | perl -ne 'print $1 if(/x-radiko-authtoken: ([\w-]+)/i)'

パーティカルキー

# offset
cat auth1_fms_${OUTFILEPREFIX}_${CHANNEL} | perl -ne 'print $1 if(/x-radiko-keyoffset: (\d+)
/i)'
# length
cat auth1_fms_${OUTFILEPREFIX}_${CHANNEL} | perl -ne 'print $1 if(/x-radiko-keylength: (\d+)
/i)'

取得したoffsetとlengthを使って取得します。

dd if=$keyfile bs=1 skip=[offset] count=[length] 2> /dev/null | base64

例)トークン S:wdaDhu6evQheSnXIM8vbGA
パーティカルキー cHHB6YxRZrVhZMRASY1J4w==

ところが、このトークンはまだ使えません。

更に認証を通します。

取得したトークンとパーティカルキーを使います。

wget -q '--header=pragma: no-cache' '--header=X-Radiko-App: pc_1' \
'--header=X-Radiko-App-Version: 2.0.1' '--header=X-Radiko-User: test-stream' \
'--header=X-Radiko-Device: pc' \
'--header=X-Radiko-Authtoken: wdaDhu6evQheSnXIM8vbGA' \
'--header=X-Radiko-Partialkey: cHHB6YxRZrVhZMRASY1J4w==' \
'--post-data=\r\n' --no-check-certificate --tries=5 \
--timeout=5 -O auth2_fms https://radiko.jp/v2/api/auth2_fms

こうして取得したトークンを使えばよいです。

rtmpdump -v -r rtmpe://f-radiko.smartstream.ne.jp --playpath simul-stream.stream \
--app TBS/_definst_ -W http://radiko.jp/player/swf/player_3.0.0.01.swf \
-C S: -C S: -C S: -C S:wdaDhu6evQheSnXIM8vbGA --live \
--flv ./test.flv --stop 30

最後を少し変えれば、そのまま再生もできます。

rtmpdump -v -r rtmpe://f-radiko.smartstream.ne.jp --playpath simul-stream.stream \
--app TBS/_definst_ -W http://radiko.jp/player/swf/player_3.0.0.01.swf \
-C S: -C S: -C S: -C S:wdaDhu6evQheSnXIM8vbGA --live \
--flv - | mplayer -cache 500 -quiet -

mplayerが必要です。

ラジコの録音の件。東京の放送を取得する一案

ラジコの録音をDTIでやっていたのですが、どうにも不安定なので、ラズパイでやろうと思ったのですが、何故かうまくいきませんでした。
正確には数日はうまく行っていたのに突然接続不能となりました。
DTIは問題がないので、録音時代が不能になったわけではないみたい。
調べていくうちに、何故か我が家が”富山”と認識されていることがわかりました。
プロバイダをso-netのADSLからコミュファに変更したことが思いっきり影響してしまったようです。

申請して修正してもらってもいいのですが、また暫く経つと別の地域に変わってしまうので解決になりません。
いまは愛知と静岡を行ったり来たりしています。。。

これでは録音機としてまったく使えないので、対策を練りました。

VPNをつかって東京につなぐという方法もありますが、もっと手軽に何とかなる方法を考えました。
録音を開始するにははじめにトークンを取得して、ダウンロードを行います。
どうやらこのトークンを1度取得してしまえば、切断するまでは接続し続けられるようです。

とすれば、東京にサーバーが一つあって、トークンだけそこで取得できれば・・・。
DTIのserversmanが東京にありますので、取得はできそうです。
ただし、DTIはスペック不足なのか不安定です。
そこで、さくらインターネットです。私にはさくらインターネットのスタンダード契約が2つあります。
実は以前ラジコ録音ができないか試しましたが、残念ながら流石に無理でした。
原因はrtmpdumpのインストールが無理だったのです。
しかし、トークンだけなら可能でした。
ラズパイ→さくらインターネットにつなぐ→トークン取得
こんな感じです。
さくらインターネットはレンタルサーバーですので、httpのプロトコルを使っても簡単に取得できそうです。
が・・・、ちょっとそれだとつまらないので、ソケットを使ってみました。
バッチリ成功し、とても面白かったので、この手法を次から説明していこうと思います。

G2Aシールドの課金開始日、次回課金日について聞いてみた

G2A.comにG2Aシールドに付いてきいてみたところ、
早速回答が来ました。海外サイトなのに早いですね。

解答詳細

質問1.G2Aシールドは正確にいつから課金されるのか。
例えば、8月7日入会→9月?日に課金される。

G2A Shield Membershipのトライアルは30日間です、その時間以内に無効化しない限りそれが過ぎてから課金され始めます。お客様の場合は、2017-09-08ですね、9月8日。G2A Shieldに関する情報はいつでも、ご自分のアカウントにご確認いただけます:https://pay.g2a.com/shield/index

課金開始日を教えてくれましたね。
私の入会は8/9でした。ということで、ちょうど31日目に課金ということですね。
(入会した日の次の日を1日目、と考えます。)
マイページの何処かで確認できるともっと良いのですが、
よくわからなかったので、再問い合わせしました。

 

質問2.課金日は毎月何日になるのでしょうか。
毎月1日?入会日?

課金は30日間ごとにされます。そのため、月の日数により毎月何日も異なることにいなります。

本文ママ(意地悪・・・笑)
でも、まあ言ってることはわかりますね。
31日と30日(と28日)の月がありますが、あくまでも「30日毎」ということのようです。

これでちょっとスッキリしましたかね!

 

G2Aシールドに入るか入らないか問題

入らなくてもいいよ、という意見と、入るのは常識でしょ、って言う意見があります。
個人的にはキャッシュバックを基準に考えてもいいのかな、と思います。
簡単に言うと1200円位よりも高いものなら、10%のキャッシュバックがあるのではいったほうがいいと思います。120円がウォレットに入ります。1ユーロは120円位なので、トントンというわけです。
都度入会はなぜかとても高くなってしまって(3ユーロ?)居るので30日課金が良いかな。退会すると保証がなくなるみたいで、だから安いのかな??
これもちょっと聞いてみますかね。

G2Aシールドを解除するぞ!

そろそろ初購入から30日が経過します。
結局ゲームあまりやってないですね^^;
Terrariaしばらくハマっていたのですが、あまりにも銃が手に入らなくて疲れてしまいました@@;

よくわからない課金開始日

G2Aのマイページを見ても、いつから課金なのかまったくわかりません。
いつ入会したのかも・・・わかりません。
また、課金は毎月1日が課金になるのか、30日無料が切れた日が起点になるのか??
謎が謎を呼びます。

てなわけで、いくら調べてもわからないので、聞いてみました。

1.G2Aシールドは正確にいつから課金されるのか。
例えば、8月7日入会→9月?日に課金される。

2.課金日は毎月何日になるのでしょうか。
毎月1日?入会日?

さてどんなお返事でしょうかね??

一応退会方法をおさらい

多分こんな感じで良いはず。

マイページ

G2Aシールド
↓英語のページになる
Payment method

Paypal accountのところに
G2Ashield is activeとなっていることを確認

その右に「x diactive G2AShield」
と書いてあるので、このxを押す。

 

更に、Paypalにログインして、

歯車マーク

自動支払を管理する

G2A.COM Limited のリンクをクリック

ステータス、がアクティブになっているので、キャンセルを押す!

この両方をやっておけば、勝手に落とされることはないでしょう!

 

入会日はpaypalでわかるかも

paypalの自動支払の設定に、8/9とありました。
というわけで、入会日は8/9ですね。30日後は・・・うーんと、8/7??8/8のような気もする・・・。

もう使わないなら、いま解約すれば良いのですけど、
いまDirtRallyを買うかどうか悩んでます。1500円くらいですけど、やるかなあ・・・汗