この記事は2年以上前に書かれたものです。
情報が古い可能性が非常に高いです。

このエントリーをはてなブックマークに追加

アプリ購入編アクセサリ購入編と「iPhoneと過ごした365日まとめ」を未だにやっているわけですが…最後にホーム画面編をやろうと思ってます。

300日半年100日まとめの様にアプリの表を作りたいのですが、アイコンの取得やらアプリ情報の取得(iTunesからコピペできない)やらが面倒臭い。

App Storeからアイコンやら情報を取得するツールとかサンプルが、そろそろどっかに転がっているだろうと思ったのですが見つからず。じゃあってことで、自分用にPHPでコマンドラインツールを作ってみました。サンプルとして公開しておきます。

ファイルダウンロード

2009-11-28 追記 – 11月にまたXMLレイアウト変更がありました。自分がPHP版が必要になったら更新しますが…いつのことになるか保障できません。ご容赦を。ちなみにExcel VBA版は2010/01/17時点のiTunes Storeに対応しています。

2009/09/21 Release:0.12-sample (012-sample.zip 357KB – XMLレイアウト変更対応及びいくつかの項目追加、制御コード混在時の不具合対応) 2009/7/31 Release:0.11-sample (011-sample.zip 356KB – XMLレイアウト変更対応?!) 2009/7/30 Release:0.10-sample (010-sample.zip 356KB)

  • テストした環境は以下の通りです。
    • Mac OS X 10.5.7 / php 5(.2.8) CLI
    • FreeBSD 7.1 / php 5(.x.x) CLI
  • ファイル内に含まれるファイルは以下の通りです。
    • iTunes_viewSoftware.php … App Storeから情報を取得するクラスサンプル
    • sample.php … 上記クラスの呼び出しのスケルトン
    • appInfo.php … 上記クラスを利用したコマンドラインツールサンプル
    • template.html … appinfo.phpで利用するデータ出力ひな形サンプル
    • /PEAR … PEAR 1.8.1の再配布物(appInfo.phpでのみ利用)。
    • /Console … PEAR::Console_CommandLine 1.1.0の再配布物(appInfo.phpでのみ利用)。

iTunes_viewSoftware.php

概要

iTunes Storeのアプリ閲覧URL(http://ax.itunes.apple.com/…/viewSoftware)にアクセスして、アプリの基本情報を連想配列に入れるPHPクラス

利用方法

sample.phpが呼び出しのスケルトンです。こんな感じで使います。

#! /usr/bin/php
<?php
//1行目の#! /usr/bin/phpは環境に合わせて書き換え。CLI呼び出しじゃないなら削除。

//ワーキングディレクトリをこのファイルのありかに変更。
chdir(dirname(__FILE__));
//ライブラリを読み込んで
require_once './iTunes_viewSoftware.php';

//オブジェクト生成
$ivs = new iTunes_viewSoftware();

//リンクシェアのIDを指定(無ければ指定しなくても良い)
//デフォルト値は私のIDなので注意!
$ivs->setLinkshareid('SoaPt8v61lk');

//データ取得->連想配列へ
//引数にはアプリのIDを指定
//(iTunes StoreでコピーしたURLに含まれるviewSoftware?id=の後9桁数値)
$ivs->loadXML("322527366");

//連想配列の中身を表示
while(list ($key, $val) = each($ivs->infos)) {
	print ($key." is ".$val."\n");
}

exit(0);
?>

実行/実行結果

#実行権付与
chmod 755 sample.php

#実行
./sample.php

#実行結果(抜粋)
#$key is $val
ID is 322527366
SELLAR is KONAMI
...
NAME is パワフルプロ野球TOUCH
CATEGORY is ゲーム
REREASED is 2009/7/13
SELLAR2 is Konami Digital Entertainment Co., Ltd.
...

appInfo.php

概要

iPhoneアプリのiTunes URLを指定して、アイコン画像をローカルに保存する。また、テンプレートを指定すると合わせてアプリ情報をローカルに保存するコマンドラインツール。

利用方法

appInfo.phpに実行権限付与して、1行目のパス指定を変更したら”appInfo.php –help”を実行してください。

$ ./appInfo.php --help

appInfo

Usage:
  ./appInfo.php [options]  

Options:
  -e /DIR/FILE, --exp_template=/DIR/FILE
                         データ出力用テンプレート
                         (指定しなければ画像のみ保存)

  -l ID, --linkshareid=ID
                         リンクシェアのIDを指定できます
                         (データ出力時のみ利用)

  -h, --help    show this help message and exit
  -v, --version     show the program version and exit

Arguments:
  save_dir  画像/データ保存先
  app_url   iTunes StoreのURL or ID9桁

第一引数のsave_dirには画像、アプリの基本情報データ(後述)を書き込むためのディレクトリを指定します。

第二引数のapp_urにはiTunesからコピーしたアプリのURLもしくは9桁のアプリIDを指定します。

オプションの-e/–exp_templateはファイル内に###連想配列のkey###を書いておくと、その部分をiTunes Storeから取得した値に書き換えて、第一引数のsave_dirに書き込みます。
書き込むファイル名はアプリケーションのID
拡張子は–exp_templateで指定したテンプレートの拡張子を採用します。

オプションの-l/–linkshareidにはリンクシェアのIDを指定してください。
(なければ不要。ただし、デフォルト値に私の値が入っているので注意。)

実行/実行結果

appInfo.php -e ./template.html -l SoaPt8v61lk ./temp 'http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=322519527&mt=8'
画像を保存しました。 ::/Users/goodegg/temp/322519527.jpg
データを保存しました。 ::/Users/goodegg/temp/322519527.html

保存されるアイコンはこんな感じ。(マスクが掛かっていないです。)

保存されるデータはこんな感じ。(付属のtemplate.htmlの場合)
322519527.html

メモ

細かい部分を考慮していないのであくまでサンプル扱いですが、とりあえず自分用はこれをベースに弄ります。

テンプレート書き換えて、シェルで複数アプリ分一括で生成して…最後にデータをcatして「iPhoneと過ごした365日まとめ(ホーム画面編)」向けの表を作る予定。

このエントリーをはてなブックマークに追加