2024年7月6日土曜日

アルバムアートをサムネイルに

PPxでは、ファイルだけではなく、フォルダにも任意のサムネイルをつけることができるらしい。 フォルダ内にcover.jpgあるいはfolder.jpgといったアルバムアートがある場合、それをサムネイルにできるようにする。

準備

以下をScriptフォルダに保存。

setalbumart_all.js

//!*script
// フォルダ内のカバーアート(cover.jpg || folder.jpg)をサムネイルにする
// カレントフォルダの各ディレクトリに対して実行
// 例:*script %0Script\setalbumart_all.js
var ALBUM_ART_NAME1="COVER.JPG";
var ALBUM_ART_NAME2="FOLDER.JPG";
var filepath;
var img;
var img_path;
for (var i = 0; i<PPx.EntryAllCount; i++){
PPx.EntryIndex=i;
var name = PPx.EntryName;
if (PPx.EntryAttributes & 16 && name !=('.') && name!=('..')){
filepath = PPx.Extract('%1') + "\\" + name;
img = getcoverart(filepath);
if (img) {
img_path =PPx.Extract('%*name(BCD,'+getcoverart(filepath)+')');
PPx.Execute("*setentryimage "+img_path+" -save");
}
} else {
continue;
}
}
// カバーアート取得用関数
// カーソル下フォルダ内にcover.jpgあるいはfolcer.jpgがあればそれを返す
function getcoverart(dirpath) {
var path = dirpath;
var fso = PPx.CreateObject("Scripting.FileSystemObject");
var thumbnailpath;
var f_name;
// ファイルを取得
var objFolder = fso.GetFolder(path);
var enmFile = PPx.Enumerator(objFolder.Files);
for (; !enmFile.atEnd(); enmFile.moveNext()){
f_name = enmFile.item().Name.toUpperCase();
if (f_name == ALBUM_ART_NAME1 || f_name == ALBUM_ART_NAME2){
thumbnailpath = fso.BuildPath(path, enmFile.item().Name);
break;
}
}
return thumbnailpath;
}

やり方

音楽ファイルをフォルダごとにまとめたフォルダで、以下のコマンドを実行。

*script %0Script\setalbumart_all.js

各フォルダ内にあるcover.jpgあるいはfolder.jpgを取得し、それをサムネイルにする。

0 件のコメント:

コメントを投稿