0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Googleフォトの一括エクスポートで不要な JSON(メタデータ)を一括削除する方法

0
Posted at

クラウドで写真や動画の管理をされている方は非常に多いと思います。
私自身も使ってますが、クラウドに保存すると便利ですが、容量がすぐ足りなくなってしまいます。
課金をこれ以上増やすのもなーって思いまして。。。

今回整理を兼ねて全てHDDに移し替えようと思ったのがきっかけです。

はじめに

Googleフォトの解約や移行に伴い、一括エクスポート(Google Takeout)を利用すると、多くの人がこう思うはずです。

「え、写真と同じ数だけ .json ファイルが大量に入ってる…邪魔すぎる!」

Googleフォトのエクスポートでは、メタデータ情報が jsonファイルとして同梱されます。
しかし、ほとんどのユーザーにとって json は不要なファイルです。

そこで今回、
大量のフォルダの中に存在する .json ファイルだけを一括削除する Python スクリプト
を作成しました。

本記事では、その背景と実際のコード、使い方を解説します。

背景:Googleフォトのエクスポートは JSON が大量に含まれる

Googleフォトを一括エクスポートすると、下記のような構造になります。

GooglePhotos/
├── Album1/
│   ├── IMG_0001.jpg
│   ├── IMG_0001.json   ← これ
│   ├── IMG_0002.jpg
│   ├── IMG_0002.json   ← これ
├── Album2/
│   ├── ……

写真1枚につき1つの .json ファイルが生成されます。

これは Google フォト内部で管理しているメタデータ(撮影日、位置情報、編集履歴など)を含むためですが、普段の利用ではまず必要ありません。

Googleフォトを解約するためにエクスポートしただけなら、なおさら不要です。

jsonファイルだけを一括削除する Pythonスクリプト

以下は、エクスポートしたフォルダ(例:GooglePhotos/)配下の
すべての .json ファイルを再帰的に削除するスクリプト です。

サブフォルダも含めてすべて探索するので、手作業では追いつかない量でも一瞬で処理できます。

delete_json.py
import os


def delete_json_files(base_dir="GooglePhotos"):
    # 削除したファイルパスを格納するリスト
    deleted_files = []

    # os.walk() は base_dir をルートとして再帰的にフォルダ・ファイルを探索する
    for root, dirs, files in os.walk(base_dir):
        # そのディレクトリ内にある全ファイルをループ処理
        for file in files:
            # ファイル名が .json で終わる(拡張子が .json の)ファイルだけ対象
            if file.endswith(".json"):
                # ディレクトリ(root) とファイル名を結合してフルパスを作成
                file_path = os.path.join(root, file)
                try:
                    # ファイル削除
                    os.remove(file_path)
                    # 削除したファイルをリストに保存
                    deleted_files.append(file_path)
                    # 削除ログを表示
                    print(f"Deleted: {file_path}")
                except Exception as e:
                    print(f"Failed to delete {file_path}: {e}")

    print("\n=== 削除完了 ===")
    # 削除したファイルが 1 件以上あれば一覧を表示
    if deleted_files:
        print("削除したファイル:")
        for f in deleted_files:
            # 削除したファイルパスを 1 行ずつ表示
            print(f" - {f}")
    else:
        # 削除対象が1つもなかった場合のメッセージ
        print("削除対象の .json ファイルはありませんでした。")


if __name__ == "__main__":
    delete_json_files("GooglePhotos")

使い方

  1. Python をインストールする
    mac / Windows どちらでもOK。
  2. 上記スクリプトを delete_json.py などの名前で保存
    3.Googleフォトのエクスポートフォルダを同じ階層に置く
project/
├── delete_json.py
└── GooglePhotos/
      ├── Album1/
      ├── Album2/
      └── ……

Googleフォトのエクスポートフォルダを同じ階層に置く
※ 必要に応じてフォルダ名を変えてください。

  1. ターミナル(または PowerShell)で実行
python3 delete_json.py
  1. .json ファイルだけ綺麗に削除される!

このスクリプトを使うメリット

大量のサブフォルダでも一括削除可能

誤削除を防ぐために .json ファイルだけ削除

数千〜数万ファイルでも高速

拡張子を変えれば他の不要ファイル整理にも応用可能

注意点

元のデータ(写真 / 動画)は削除されません(安全)

.json ファイルには位置情報・編集履歴などの個人情報を含んでいる場合があります。
→ 必要な場合はバックアップしてから削除してください。

まとめ

Googleフォトのエクスポートには、写真の数だけ .json が含まれます。
Googleフォトの解約や移行時には不要なことが多いため、
Python を使って安全に一括削除する方法を紹介しました。

結局またすぐクラウドに戻してしまいそうな気がします。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?