60歳を迎えて、思うこと。 -60ページ目

60歳を迎えて、思うこと。

いつの間にか、「60」という年月が経ちました。
残り少ないか多いか?わかりませんが。
じじぃ~の「ひとりごと」を細々と続けられれば。。。

電子レンジ 壊れたら 買い替える

電子レンジ 壊れたら 買い替える
電子レンジ 壊れたら 買い替える
電子レンジ 壊れたら 買い替える

と 唱え続けて 早数十年?!

最近

ご機嫌 
斜めである

電子レンジの 時間設定の

くるくる ノブ

同じ方向に 回しても

設定時間が 増えたり 減ったり

まて こら!

買い替えかな???

でも いいのが見つからない

スチーム付きだよ

パンも一杯焼けるよ

ターンテーブルなしだよ

まあ どうでもいい!

問題は 上から 下方向に 開く 扉

NGである!

問題は 
液晶 夜でも 見える?

家電量販店で

通電状態 を 見たいが

コンセント 繋いでいない
店ばかりである

客が勝手に

からっぽで 電子レンジ オン

たまったものでは ない!

オーブン 20分設定して
どこかに 行っちゃった・・・

店舗の 自衛策 も わかる!

でも 通電したときの

時間設定の パネルが 光る?
バックライト?
ホワイト液晶?

LED?

気になる点である・・・

悲しい

じじぃ~

 

定年延長 再雇用 なにそれ?

さてもさても

じじぃ~ の 泣き言 愚痴

ボヤキ の 羅列です


見るな! と 断言しましょう!

世の中

少子高齢化

少なくなる 年金問題

年金受給の 開始時期 変更

じじぃ~ にとっては

生きにくい 世の中である

生成AIの
Microsoft Copilot様に


html 作って頂戴!


流れで

感じた こと。。。


昔と 違いすぎ!

もし 仮に 例えば

60歳だね

定年延長してあげるね
働いてください
むかし webページ
作成していたよね?
それなら 即戦力 大歓迎だよ♪


ニコニコ微笑む 人事部の 
部長様

数か月後

なんじゃこりゃ!
cssは 使ってないし
htmlの タグだって
廃止・非推奨 ばかりじゃないか!


ふんふん激怒する
人事
部長様

じじぃ~

だって 昔は
こういう 記述だったんですよ!


きみぃ~~~
明日からは 来ないでいいよ・・・


シクシクである!

定年延長 や 再雇用

どんな 
人種が 働けるの???

じじぃ~

※注意 この記事は フィクションです



 

あるばむあ~と の 埋め込み

がや がや
わん わん

むか~~~し


mp3 に

あるばむあ~と を 埋め込み

スマホで 再生するとき


ニマニマ 怪しげな

笑み を 浮かべていた

じじぃ~候補生

埋め込み作業 を


mp3tag    で

実施ていた

面倒
手間
いやん ばかん
である



時は流れ


数億年(!?)

いまでは

pythonスクリプトで処理できる

しかも じじぃ~ は


注文するだけ!

楽チン!

おんらいんばっくあっぷ

# ==== 基本版 Microsoft Copilot様
# ==== 改造版 【Gemini】様

# ==== 【Gemini】
FLAC & MP3対応:アルバムアート一括埋め込みスクリプト(再帰検索&全JPG対応)
以下のスクリプトでは、各音楽ファイルがあるフォルダ内で、
拡張子が`.jpg`(または`.jpeg`)のファイルをすべて検索し、
その中からファイル名順で最初に検出されたもの
をアルバムアートとして使用します。


# ==== 本文
import os
import glob
from mutagen.flac import FLAC, Picture
from mutagen.mp3 import MP3
from mutagen.id3 import ID3, APIC, error

# ⭐ 設定: 対象のルートフォルダ
# このフォルダ以下のすべてのサブフォルダを再帰的に検索します
TARGET_FOLDER = r"C:\_CC-Art"

# --- FLACファイルに画像を埋め込む関数 ---
def embed_flac_image(file_path, image_path):
    """FLACファイルにアルバムアートを埋め込む (既存画像を削除して置き換え)"""
    try:
        audio = FLAC(file_path)
        audio.clear_pictures()  # 既存画像を削除 (Copilot様の動作を維持)

        with open(image_path, "rb") as img:
            data = img.read()

        pic = Picture()
        pic.data = data
        pic.type = 3  # Cover (front)
        pic.mime = "image/jpeg"
        pic.desc = "Cover"
        # サイズ情報は必須ではないため、ここでは省略
        # 必要であればPillowなどで事前に取得・設定可能ですが、今回はシンプル化のため省略します
        
        audio.add_picture(pic)
        audio.save()
        print(f"[FLAC] ✅ Embedded '{os.path.basename(image_path)}' into: {os.path.basename(file_path)}")
    except Exception as e:
        print(f"[FLAC] ❌ Error processing {os.path.basename(file_path)}: {e}")

# --- MP3ファイルに画像を埋め込む関数 ---
def embed_mp3_image(file_path, image_path):
    """MP3ファイルにアルバムアートを埋め込む (既存画像を削除して置き換え)"""
    try:
        # ID3タグがない場合は作成
        audio = MP3(file_path, ID3=ID3)
        try:
            audio.add_tags()
        except error:
            pass

        # 既存のAPICタグを削除 (Copilot様の動作を維持)
        audio.tags.delall("APIC")

        with open(image_path, "rb") as img:
            data = img.read()

        # APICタグを追加
        audio.tags.add(
            APIC(
                encoding=3,          # UTF-8
                mime="image/jpeg",   # MIMEタイプ
                type=3,              # Cover (front)
                desc="Cover",
                data=data
            )
        )
        audio.save()
        print(f"[MP3] ✅ Embedded '{os.path.basename(image_path)}' into: {os.path.basename(file_path)}")
    except Exception as e:
        print(f"[MP3] ❌ Error processing {os.path.basename(file_path)}: {e}")

# --- メイン処理: フォルダを再帰的に検索し、埋め込みを実行する関数 ---
def process_recursively(root_folder):
    """指定されたルートフォルダ以下の全サブフォルダを処理する"""
    print(f"--- 🚀 Target Folder: {root_folder} の再帰処理を開始します ---")

    # glob.iglobを使って、指定フォルダ以下を再帰的に検索
    all_music_files = glob.iglob(os.path.join(root_folder, "**", "*.flac"), recursive=True)
    all_music_files = list(all_music_files) + list(glob.iglob(os.path.join(root_folder, "**", "*.mp3"), recursive=True))

    processed_folders = set()

    for file_path in all_music_files:
        current_dir = os.path.dirname(file_path)

        # フォルダごとに画像検索を一度だけ実行
        if current_dir not in processed_folders:
            
            # --- 画像ファイルの柔軟な検索ロジック (ご要望の変更点) ---
            image_path = None
            
            # 1. フォルダ内の *.jpg, *.jpeg ファイルをすべてリストアップ
            jpg_files = glob.glob(os.path.join(current_dir, "*.jpg"))
            jpeg_files = glob.glob(os.path.join(current_dir, "*.jpeg"))
            all_jpg_candidates = sorted(jpg_files + jpeg_files) # ファイル名順でソート
            
            if all_jpg_candidates:
                # 2. 最初に検出されたファイルを埋め込み対象とする
                image_path = all_jpg_candidates[0]
            
            # 処理済みフォルダとして記録
            processed_folders.add(current_dir)
            
            # フォルダ内のFLAC/MP3ファイルリストを取得
            # 注: 再帰的に取得したリストから現在のフォルダ内のファイルのみを処理
            files_in_folder = [f for f in all_music_files if os.path.dirname(f) == current_dir]


            if image_path:
                print(f"\n--- 📁 Processing Folder: {current_dir} ---")
                print(f"--- 🖼️ Found Image: {os.path.basename(image_path)} (Using the first one found) ---")
                
                # このフォルダ内のすべての対象ファイルに同じ画像を埋め込む
                for f_path in files_in_folder:
                    if f_path.lower().endswith(".flac"):
                        embed_flac_image(f_path, image_path)
                    elif f_path.lower().endswith(".mp3"):
                        embed_mp3_image(f_path, image_path)
            else:
                print(f"\n--- ⚠️ Skipping Folder: {current_dir} (No JPG/JPEG image file found) ---")

if __name__ == "__main__":
    if not os.path.isdir(TARGET_FOLDER):
        print(f"Error: Target folder not found at {TARGET_FOLDER}")
    else:
        process_recursively(TARGET_FOLDER)
        print("\n--- ✅ All processing completed! ---")

# ==============================

## 🚀 変更点の確認
# 1.  **再帰的検索**: `TARGET_FOLDER`以下の全サブフォルダ内のFLAC/MP3を処理する動作は維持しています。
# 2.  **画像ファイルの柔軟性**:
#       * `IMAGE_FILENAMES`リストを削除しました。
#       * 代わりに、`glob.glob()`を使用して現在のフォルダ内の\*\*`*.jpg`および`*.jpeg`\*\*ファイルをすべて取得します。
#       * `all_jpg_candidates = sorted(jpg_files + jpeg_files)`でリストを結合し、ファイル名でソートします。
#       * `image_path = all_jpg_candidates[0]`によって、\*\*ファイル名順で最初の`.jpg`または`.jpeg`\*\*が自動で選択され、埋め込まれます。
# 3.  **上書き動作**: `embed_flac_image`と`embed_mp3_image`関数内で、既存の画像を削除し(`audio.clear_pictures()`や`audio.tags.delall("APIC")`)、新しい画像を埋め込む動作は維持しています。
# これで、「じじぃ~のお歌.jpg」など、**どんな名前のJPGファイルでもリネームなしで埋め込める**ようになりました。
# ==============================

余は 満足 で あ~~~る

じじぃ~

最新型 wave   to   FLAC  変換器

※信じないように!

ffmpeg

にゃあ にゃあ

ぶひ ぶひ


wave  to  FLAC

VLC



1アルバム づつ

変換していたけど・・・

だるい

手間

面倒

ということで



ffmpeg

を 利用することに

なった!

bat ファイルでも

実行できるが

pythonスクリプトで

親ふぉるだ 以下

全部 一気に


処理しちゃうよ!

環境を 作る!

いや 
作ってもらった!

便利 楽♪

すっくりっぷと

おんらいんばっくあっぷ

# ==== 【chatGPT】様 作成!

# ===============================
# 💻 WAV → FLAC 自動変換スクリプト(全角文字化け回避版)
# ===============================


import os
import subprocess
from mutagen.flac import FLAC
from mutagen.wave import WAVE

# -----------------------------
# 設定
# -----------------------------
BASE_DIR = r"C:\_CC-Rename"  # WAVEフォルダの親フォルダ
# -----------------------------

def decode_tag(value):
    """
    WAV タグ文字列を UTF-8 に変換
    Shift-JIS/CP932 で保存されている場合に対応
    """
    if not value:
        return ""
    try:
        # bytes にして CP932 から UTF-8 に変換
        if isinstance(value, str):
            return value.encode("cp932").decode("utf-8")
        return str(value)
    except Exception:
        # 変換できなければ安全に置換
        return str(value)

def read_wave_tags(wav_path):
    """
    WAV ファイルからタグ情報を取得
    """
    tags = {}
    try:
        audio = WAVE(wav_path)
        if audio.tags:
            for key, value in audio.tags.items():
                tags[key.lower()] = decode_tag(value)
    except Exception:
        pass
    return tags

def convert_wave_to_flac():
    for folder_name in os.listdir(BASE_DIR):
        src_folder = os.path.join(BASE_DIR, folder_name)
        if os.path.isdir(src_folder) and folder_name.startswith("WAVE-"):
            new_folder_name = folder_name.replace("WAVE-", "FLAC-", 1)
            dst_folder = os.path.join(BASE_DIR, new_folder_name)
            os.makedirs(dst_folder, exist_ok=True)

            print(f"🔹 {folder_name} → {new_folder_name} に変換中...")

            for file_name in sorted(os.listdir(src_folder)):
                if not file_name.lower().endswith(".wav"):
                    continue

                src_file = os.path.join(src_folder, file_name)
                dst_file = os.path.join(dst_folder, os.path.splitext(file_name)[0] + ".flac")

                # -----------------------------
                # ffmpeg で WAV → FLAC 変換
                # -----------------------------
                cmd = [
                    "ffmpeg",
                    "-i", src_file,
                    "-compression_level", "12",
                    dst_file,
                    "-y"
                ]
                subprocess.run(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)

                # -----------------------------
                # WAV タグ取得
                # -----------------------------
                wav_tags = read_wave_tags(src_file)

                # FLAC タグ編集
                flac_audio = FLAC(dst_file)

                # ファイル名から TRACKNUMBER と TITLE を推測
                filename_without_ext = os.path.splitext(file_name)[0]
                if '-' in filename_without_ext:
                    track_str, title_guess = filename_without_ext.split('-', 1)
                    track_number = track_str.strip()
                    title_default = title_guess.strip()
                else:
                    track_number = ""
                    title_default = filename_without_ext.strip()

                # タイトル
                if wav_tags.get("title"):
                    flac_audio["title"] = wav_tags["title"]
                else:
                    flac_audio["title"] = title_default

                # アーティスト
                if wav_tags.get("artist"):
                    flac_audio["artist"] = wav_tags["artist"]

                # アルバム
                if wav_tags.get("album"):
                    flac_audio["album"] = wav_tags["album"]

                # ジャンル
                if wav_tags.get("genre"):
                    flac_audio["genre"] = wav_tags["genre"]

                # トラック番号
                if track_number:
                    flac_audio["tracknumber"] = track_number

                flac_audio.save()

            print(f"✅ {folder_name} → {new_folder_name} 変換完了\n")

if __name__ == "__main__":
    convert_wave_to_flac()
    print("🎉 すべてのフォルダの変換が完了しました!")


# ==============================

 したい

お年頃♪

じじぃ~