summaryrefslogtreecommitdiff
path: root/luvthumbnail.sh
diff options
context:
space:
mode:
Diffstat (limited to 'luvthumbnail.sh')
-rw-r--r--luvthumbnail.sh44
1 files changed, 44 insertions, 0 deletions
diff --git a/luvthumbnail.sh b/luvthumbnail.sh
new file mode 100644
index 0000000..600037f
--- /dev/null
+++ b/luvthumbnail.sh
@@ -0,0 +1,44 @@
+ #!/bin/bash
+
+# それぞれのディレクトリパス
+input_dir="/media/ncp/yt/music"
+output_dir="/media/ncp/yt/musicmp3"
+
+# 出力ディレクトリが存在しない場合は作成する
+mkdir -p $output_dir
+
+# フォーマット指定、現状出力はmp3のみ
+in="webm"
+out="mp3"
+
+# ディレクトリ内全てに適応させる
+#find "$input_dir" -type f -name "*$in" | while IFS= read -r file; do
+shopt -s globstar
+for file in "$input_dir"/**/*.${in}; do
+ # baseを指定
+ base=$(basename "$file" .${in})
+
+ # ファイルのディレクトリ取得
+ file_dir=$(dirname "$file")
+ # ディレクトリパスの一部を置換して新しいパスを作成
+ outfile_dir="${output_dir}${file_dir#$input_dir}"
+ mkdir -p "$outfile_dir"
+
+ # サムネイルのパス指定
+ thumbnail="${outfile_dir}/${base}_thumbnail.jpg"
+
+ # ビデオファイルからmp3に変換
+ ffmpeg -i "$file" -vn -acodec libmp3lame -qscale:a 2 "$outfile_dir/${base}.${out}"
+
+ # 映像ファイルからサムネイル抽出
+ if ffmpeg -i "$file" -an -vframes 1 -q:v 2 "$thumbnail" -y; then
+ echo "Thumbnail extracted for $base"
+
+ ffmpeg -i "$outfile_dir/${base}.${out}" -i "$thumbnail" -map 0 -map 1 -c copy -id3v2_version 3 -metadata:s:v title="Album cover" -metadata:s:v comment="Cover (front)" -y "$outfile_dir/${base}_with_thumbnail.${out}"
+ rm "${outfile_dir}/${base}}"
+ rm "${outfile_dir}/${base}_thumbnail.jpg"
+ mv "${outfile_dir}/${base}_with_thumbnail.${out}" "$outfile_dir/${base}.${out}"
+ else
+ echo "No thumbnail found for $base"
+ fi
+done