iPhoneで「Live Photo」の写真を「Yahoo!かんたんバックアップ」でバックアップすると、「xxx.livephoto.yjmultifile」というファイルに変換されてバックアップされます。
この状態でPCにファイルをダウンロードすると、写真ファイルを確認することができません。
そこで、今回は「Yahoo!かんたんバックアップ」でバックアップされた「Live Photos」から写真ファイルを取り出す方法を、PowerShellでプログラミングします。
「Yahoo!かんたんバックアップ」でバックアップされた「Live Photos」から写真ファイルを取り出す方法
Contents
「xxx.livephoto.yjmultifile」について
「xxx.livephoto.yjmultifile」とは、簡単に言うと画像と動画が圧縮されたものです。
なので、単純に解凍すれば画像ファイルを取り出すことができます。
引用:Yahoo!かんたんバックアップヘルプ(iPhone版)
PowerShellで実施する理由
特に理由はないんですが、たくさんの「Live Photo」ファイルがあって、windowsで一括で写真ファイルを取り出したいと思い、コマンドだけで実施したいなぁ、ということでPowerShellで実施してみました。
「xxx.livephoto.yjmultifile」から写真ファイルを取り出す
対象のフォルダのファイルの拡張子をzipに変更
#############################################################
[STRING]$ENV_WORK_DIR = 'D:\test' #対象のディレクトリ
#############################################################
#対象のディレクトリに移動
cd $ENV_WORK_DIR
#「yjmultifile 」の拡張子のファイル名の末尾に「.zip」を付与
Get-ChildItem -Path . -File *.yjmultifile | Rename-Item -NewName{$_.Name + ".zip"}
対象のフォルダのzipを解凍
#############################################################
[STRING]$ENV_WORK_DIR = 'D:\test' #対象のディレクトリ
#############################################################
#対象のディレクトリに移動
cd $ENV_WORK_DIR
#zipファイルをリストに格納
$lst = Get-ChildItem -Path . -File *.zip
#zipファイルを解凍。
#解凍するとすべてのファイルに「manifest.json」が含まれているが使用しないので、上書きする
foreach ($tgt in $lst) {
Expand-Archive -Path .\$tgt -DestinationPath $ENV_WORK_DIR -force
}
ファイルを移動する(必要であれば)
#############################################################
[STRING]$ENV_WORK_DIR = 'D:\test' #対象のディレクトリ
[STRING]$ENV_DEST_DIR = 'jpeg' #移動先ディレクトリ
[STRING]$ENV_TGT_EXT = 'jpeg' #対象ファイルの拡張子
#############################################################
#対象のディレクトリに移動
#格納先のディレクトリがなければ作成する
cd $ENV_WORK_DIR
if (-not (Test-Path $ENV_DEST_DIR)){
New-Item $ENV_DEST_DIR -itemType Directory
}
#移動したいディレクトリに対象のファイルを移動する
$lst = Get-ChildItem -Path . -File *.$ENV_TGT_EXT
foreach ($tgt in $lst) {
Move-Item $tgt .\$ENV_DEST_DIR -force
}
これでYahooバックアップでバックアップした「Live Photo」から写真ファイルを取り出すことができます。