Piwigo で写真のフォルダ管理とオサラバする(2)

linux

前回は、家族の写真管理をするにあたって必要な写真管理アプリの要件を列挙し、結果として Piwigo を選択・インストールするところまでをまとめました。

詳しくは以下をごらんください。

Piwigo で写真のフォルダ管理とオサラバする(1)
今までずっとフォルダで写真管理をしてきたのですが、α7Cを購入したこともありキチンと管理することにしました。 いろいろ試行錯誤したところ、Piwigo で自分がやりたいことは一通り実現できそうなので、その内容についてまとめたいと思います。

ただそのままだとまだいろいろ使いづらいので、カスタマイズが必要となってきます。

このカスタマイズが結構大変なので、今回は自分が行っている(行った) Piwigo のカスタマイズ項目について説明していきたいと思います。

なお環境は以下の通りです。

カスタマイズ項目一覧

以下のようなカスタマイズを行っていきます。

  • 地図上で写真を閲覧できるようにする
  • アルバムごとにまとめて写真をダウンロードできるようにする
  • GeoTag 情報をファイルへ書き込む
  • Exif 情報を追加で表示できるようにする
  • 動画に対応する
  • 写真読み込み時にカメラ機種のタグをつける
  • バッチマネージャーの「定義済みフィルター」を増やす
  • ページフッタから「ウェブマスタに連絡する」を削除する

今回は「Exif 情報を追加で表示できるようにする」までです。

地図上で写真を閲覧できるようにする

これは前回も紹介しましたが、こういうやつです。

これは OpenStreetMap プラグインをインストールすれば使えます。特に設定に難しいところもありません。

このプラグインをインストールすると、個々の写真のプロパティページやバッチマネージャーで GeoTag を付与することもできるようになります。

プラグインをインストールすると、プロパティページに「OpenStreetMap」タブが追加される。

上のように地図上でタップすることで GeoTag を付与できます。

これで機能的には不足はないのですが、ただ、正直そこまで使いやすくはありません。

もし Imaging Edge Mobile のようにデジカメの写真をいったんスマホに取り込むような運用をされているような方であれば、スマホ上で PhotoMap などのアプリで GeoTag 付与してからアップロードされることをオススメします。

PhotoMap Gallery - Google Play のアプリ
写真、ビデオ、ロケーション履歴、日記。 PhotoMap であなたの人生を記録しましょう。

その上でこちらの機能は、スマホ上で GeoTag 設定し忘れた時のバックアップ的位置づけの方が良いかなと思います。

なお、地図関連の機能としては GoogleMap を使う RV Maps & Earth プラグインもあります。

こんな感じで見えます。

見慣れた GoogleMap ですし、航空写真が使えるなど、閲覧だけなら RV Maps & Earth プラグインの方が良い部分もありますが、GeoTag 設定機能がショボいこともあり、トータルでは OpenStreetMap の方が良いかな。

RV Maps & Earth を使うには、Google Maps API Key を取得・指定する必要がある

API キーの取得については以下をどうぞ。

APIキーの取得・設定|Google Maps Platform|ゼンリンデータコム法人向けサービス
Google Maps Platformの利用に必要な、アカウント作成~APIの有効化~Google Maps Platform APIキーの取得・発行~APIキーの指定についてご紹介します。APIキーの設定の確認方法についてもご案内いたします。

アルバムごとにまとめて写真をダウンロードできるようにする

やりたいこととしては文字通りで、アルバム内の写真を zip でまとめてダウンロードします。

なんでこれをやりたいかというと、今後 Piwigo を卒業して別の写真管理に移行する必要が出てきたときに、アルバムごとに写真をダウンロードできるようにしておくと移行がラク(そう)だからです。

一時的にフォルダ管理するとしても、アルバムをフォルダとして利用すれば、しばらくはそれでやり過ごせそうです。

方法としては、Batch Downloader プラグインをインストールするだけです。

これでダウンロードアイコンが追加されます(以下参照)。

こんな感じでアルバム内の写真をまとめてダウンロードできるが・・・

ただこれは、動画には対応していないようです。

もうちょっと調べる必要がありますね・・・

GeoTag 情報をファイルへ書き込む

上で説明した通り、Piwigo では OpenStreetMap プラグインなどを使用することで、GeoTag (GPS の location 情報)の付与や閲覧ができます。

しかし、ここで付与した GeoTag はファイルの Exif には保存されません。

全てデータベース(MariaDB)の値として保存されます。

これはこれで便利な側面もあるのですが(ファイルだけをダウンロードして誰かに渡しても、場所情報が漏洩しないとか)、今後 Piwigo 以外で写真管理をしないといけないとなった場合に大変に不便です。

移行先の写真管理ソフト上でまた改めて GeoTag 情報をつけなおさないといけません。

この記事を書いている時点では、Piwigo 上でファイルに GeoTag を直接つける機能はなさそうです。

Write GPS location to image file · Issue #1 · plegall/Piwigo-write_metadata
Hello, I use the "Write Metadata" plugin to write description, author, tags etc to my image files into the corresponding IPTC fields. However using this plugin ...

ただ、Latitude と Longitude の値がデータベース内に生で入っているので、これを CSV として取り出して exiftool で書き込むことで対応できます。

$ mysql -u root -p
Enter password:
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 8298
Server version: 10.6.4-MariaDB-1:10.6.4+maria~focal mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

名前から推察するに、piwigo_images にありそうな雰囲気。

MariaDB [(none)]> use piwigo;
MariaDB [piwigo]> describe piwigo_images;
+----------------------+-----------------------+------+-----+---------------------+-------------------------------+
| Field                | Type                  | Null | Key | Default             | Extra                         |
+----------------------+-----------------------+------+-----+---------------------+-------------------------------+
| id                   | mediumint(8) unsigned | NO   | PRI | NULL                | auto_increment                |
| file                 | varchar(255)          | NO   |     |                     |                               |
| date_available       | datetime              | NO   | MUL | 1970-01-01 00:00:00 |                               |
| date_creation        | datetime              | YES  | MUL | NULL                |                               |
| name                 | varchar(255)          | YES  |     | NULL                |                               |
| comment              | text                  | YES  |     | NULL                |                               |
| author               | varchar(255)          | YES  |     | NULL                |                               |
| hit                  | int(10) unsigned      | NO   | MUL | 0                   |                               |
| filesize             | mediumint(9) unsigned | YES  |     | NULL                |                               |
| width                | smallint(9) unsigned  | YES  |     | NULL                |                               |
| height               | smallint(9) unsigned  | YES  |     | NULL                |                               |
| coi                  | char(4)               | YES  |     | NULL                |                               |
| representative_ext   | varchar(4)            | YES  |     | NULL                |                               |
| date_metadata_update | date                  | YES  |     | NULL                |                               |
| rating_score         | float(5,2) unsigned   | YES  | MUL | NULL                |                               |
| path                 | varchar(255)          | NO   | MUL |                     |                               |
| storage_category_id  | smallint(5) unsigned  | YES  | MUL | NULL                |                               |
| level                | tinyint(3) unsigned   | NO   |     | 0                   |                               |
| md5sum               | char(32)              | YES  |     | NULL                |                               |
| added_by             | mediumint(8) unsigned | NO   |     | 0                   |                               |
| rotation             | tinyint(3) unsigned   | YES  |     | NULL                |                               |
| latitude             | double(8,6)           | YES  | MUL | NULL                |                               |
| longitude            | double(9,6)           | YES  |     | NULL                |                               |
| lastmodified         | timestamp             | NO   | MUL | current_timestamp() | on update current_timestamp() |
+----------------------+-----------------------+------+-----+---------------------+-------------------------------+
24 rows in set (0.003 sec)

latitude と longitude がありますね。

これを、実ファイルパス (path) と一緒に出力してやります。

MariaDB [piwigo]> select latitude,longitude,path from piwigo_images where latitude!='NULL' into outfile '/tmp/gps.csv';

そうすると、こんなファイルができあがります。

XX.XXXXXX       XXX.XXXXXX      ./upload/2021/08/18/20210818003731-2c74be19.jpg
XX.XXXXXX       XXX.XXXXXX      ./upload/2021/08/18/20210818003731-2da41e01.jpg
XX.XXXXXX       XXX.XXXXXX      ./upload/2021/08/18/20210818003733-807ba8b1.jpg
    :
    :

この csv を使ってカッコよく設定したかったんですがやり方がわからなかったので・・・、ちょっとダサいですがこんな感じでスクリプト化して実行すればよいかと思います。

 $ awk '{print "exiftool -GPSLatitude="$1 " -GPSLongitude="$2 " " $3}' /tmp/gps.csv
exiftool -GPSLatitude=XX.XXXXXX -GPSLongitude=XXX.XXXXXX ./upload/2021/08/18/20210818003731-2c74be19.jpg
exiftool -GPSLatitude=XX.XXXXXX -GPSLongitude=XXX.XXXXXX ./upload/2021/08/18/20210818003731-2da41e01.jpg
exiftool -GPSLatitude=XX.XXXXXX -GPSLongitude=XXX.XXXXXX ./upload/2021/08/18/20210818003733-807ba8b1.jpg

このへんのやり方さえ知っておけば、いざ Piwigo から移行するとなったときにまとめて GeoTag 情報をファイルへ書き込めば良さそうですね。

Exif 情報を追加で表示できるようにする

標準でも Exif 情報は表示できますが、表示されるのは以下の4つだけです。

  • メーカー名
  • デジカメ機種名
  • 撮影日
  • F 値

/gallery/local/config/config.inc.phpshow_exif_fields に項目を追加することで、表示項目を増やすことができます。

ひとまず今はこんな感じで設定しています。

$conf['show_exif_fields'] = array(
  'Make',
  'Model',
  'Software',
  'DateTimeOriginal',
  'COMPUTED;ApertureFNumber',
  'ExposureTime',
  'ISOSpeedRatings',
  'FocalLength',
  'FocalLengthIn35mmFilm',

  'format',
  'type',
  'duration',
  'playtime_seconds',
  'resolution',
  'frame_rate',
  'sampling_rate',
  'formatprofile',
  'codecid',
  'display_aspect_ratio'
  );

空行を挟んで前半が静止画向け、後半が動画向けです。

そもそもどんなパラメータを show_exif_fields に設定できるのかというのがイマイチよくわからないのですが、videojs プラグインのページにそれなりに載っているので、そちらを参考にしました。

How to add videos
Videojs port for piwigo. Play your videos on your web gallery! - Piwigo/piwigo-videojs

このように設定することで、以下のように表示されるようになります(これは動画の例)。

思ったより長くなってしまったのでもう1回続きます。

コメント

タイトルとURLをコピーしました