One of my favorite things is ...

2023.04.15
XML
カテゴリ: Tips_Windows
radikoからRajikoでダウンロードしたファイルを、 SONY のwalkmanで、 より便利に再生するために、下記の処理をPower Automate Desktopで実行するようにしてみました。

といっても、
Power Automate Desktopですべて完結するわけではなく、ffmpegやid3v2win.exeといったアプリでの処理を Power Automate Desktopのフローの中で実行するという内容です。

​もちろん、Power Automate Desktopも「繰り返し処理」と「タグに入力する日付の文字列を各録音ファイルの名前から取り出す」などの重要な処理内容を担っています。​

Power Automate Desktopの利用は、プログラム学習に役立つというか、プログラム学習初心者に最適というか、言語を学習しなくてもプログラム作成と同等のことができるというか、いろいろな側面があると思います。「小学生が習うプログラミング」的なところがあるようなので、親子で取り組むのもいいかもです。

いずれにしても、MP3の「アルバム」タグにラジオ番組放送年月日の情報を書き込むという、極めてニッチ?な処理をプログラム言語の学習なしで達成できるのはかなりすごいことだと思います。

「アルバム」のタグに番組放送日を入れることにより、
番組放送日でファイルを選択することが手軽にできるようになりました。まあ、 walkmanの 「フォルダ」から入った場合、ファイルは番組名別に放送日の順に並ぶので、ちょっとだけ便利な感じです。

1.と 2.の処理を統合しておらず、それぞれで動作確認をしているところです。動作確認後、 walkmanにmp3のファイルをコピーするフローの前に2.のタグ編集の処理を入れます。

===
1.radikoからRajikoでダウンロードした.aac形式のファイルを.mp3形式に変換

2.walkmanで検索がしやすいようにタグの「アルバム」のところに番組の放送日を書き込む
===

1.の変換処理は、処理を実行するバッチファイルを
Power Automate Desktopで起動させる方法でできました。⇒先日の日記で言及しています。

2.の処理ですが、普通のバッチファイルを使用してフォルダ内の全ファイルに対して繰り返し処理する際に、「タグに入力する日付の文字列を各録音ファイルの名前から取り出す」ということが上手くいきませんでした。

Windowsのバッチファイルの「for in() do」の構文では、各ファイル名から文字列の一部を取得する処理が簡単ではありません。変数を利用して上手く処理するには、PowerShellやVBSなど、別の方法を採用する必要があるようです。

処理内容の概要はイメージできていますが、PowerShellやVBSのコードを作るために文法や作法を調べるのが大変そうなので、 Power Automate Desktopを試したところ、意外と簡単にできてしまいました。

「何を」「どうする」かが明確であり、Power Automateで「どうする」の処理が対応可能な範囲内にあれば、簡単にフローができます。

まあ、 Power Automateは、 PowerShellやVBSのコードなどの代替手段なので、当然といえば当然なのですが、 PowerShellやVBSのコードを知らなくても 結構いろいろなことができるようです。

ただし、
PowerShellやVBSのコードの置き換えのようなものなので、 PowerShellやVBSのコードを参考にしながら のフローを作成するのが効率的ではあります。「For each」のフローとかは、PowerShellっぽいです。

今回のフローも、バッチファイルの「for in() do」のイメージがあったから、比較的簡単にできたのではないかと思います。

いずれは、ふんわりとした処理イメージの指示だけでAIが処理するようになるのでしょうが。。GitHub Copilotなど、AIによるコード作成支援が実用化されてきています。プログラム言語の細かな文法・作法を覚えていなくても、変数のところをうまくごにょごにょできれば、コードが作成できる時代になってきています。

下図が2.の処理用に作成した
Power Automate フローです。サブテキストの取得の部分が Windowsの繰り返し処理のバッチファイルではうまくいかなかったのですが、 Power Automateでは簡単にできました。

ただし、
現状は文字列の末尾からの取得(Right関数のような処理)ができないのが残念なところです。現状、文字列の取得は先頭からが既定の動作になっています

また、ファイル名に空白があるとファイル名からの文字列抽出がうまくできなかったため、最初にファイル名から空白を除く処理を入れています。

空白の表現がわかりにくく、正規表現もうまくいかなかったため、いろいろと調べて「%''% %''%」を半角の空白の表現に使っています。こういうわかりにくい表現は何とかならないものかと思います。


Rajikoでダウンロードしたファイルのファイル名は、放送局名_番組放送開始日時_放送終了日時といった形式なので、アンダーバー「_」でファイル名を分割して取得すると 番組放送開始日時から始まる文字列となります。そこから日付の部分8文字だけを取り出して、タグのアルバム名の欄に書き込みます。

↓タグに書き込むメインの処理です。id3v2win.exeというアプリを作業フォルダに置いておき、DOSコマンドを実行しています。このタグの編集処理自体は
Windowsの繰り返し処理のバッチファイルでも実行できるのですが、引数の%Subtext%をファイルごとに生成する処理がバッチファイル内でうまくできなかったため Power Automateを利用しています。例えば、処理実行日の「%DATE%」(一定の値)を書き込む処理であれば簡単なバッチファイルだけで可能です。











お気に入りの記事を「いいね!」で応援しよう

Last updated  2023.04.17 12:00:32
コメント(0) | コメントを書く


【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! -- / --
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
X

© Rakuten Group, Inc.
X
Mobilize your Site
スマートフォン版を閲覧 | PC版を閲覧
Share by: