Takeout JSON

LINE で保存した写真の日付がおかしい・撮影日順に並ばない理由と、直せる範囲・直せない範囲

LINE で受け取って保存した写真は、撮影日時が消えていて 1970 年や保存日に並びます。何が消えて何が残るのか、取り戻せるものと戻せないもの、フォルダー単位で日付と場所をまとめて設定する方法を説明します。Android と iPhone のどちらでも同じです。

家族から LINE で送られてきた何年分もの写真を保存した。あるいはスマートフォンが LINE の保存フォルダーを Google フォトにバックアップしていて、ライブラリに混ざっている。どれも日付がおかしく、位置情報はなく、ギャラリーでは保存した日か、ひどいときは 1970 年 1 月 1 日に並ぶ。

LINE は写真に何をするか

LINE は、写真として送るときに画像を再エンコードします。縮小し、再圧縮し、メタデータの領域を捨てます。EXIF の撮影日時、カメラ機種、GPS 座標、すべてなくなります。通信量を減らし、写真を送っただけで居場所が漏れるのを防ぐための仕様です。

受け取った側のスマートフォンに届くのは、DateTimeOriginal(撮影日時)のない新しい JPEG です。持っている日付は、ファイル自体の更新日時、つまり保存した瞬間だけです。

ですから、2015 年に撮られて 2019 年に転送された写真には、2019 年の保存日しかありません。2015 年という情報はファイルのどこにもなく、ファイルからは取り戻せません。最初から書かれていないからです。

1970 年と表示される理由

ギャラリーアプリの中には、撮影日時が見つからないときに日付を「0」として扱うものがあります。コンピューターの日付の数え方では 0 は 1970 年 1 月 1 日なので、その日に表示されます。ファイルが壊れているわけではなく、「日付がない」の別の見え方です。

取り戻せるもの

保存した日です。ファイルの更新日時や、Android で LINE_ から始まるファイル名に含まれる数字が、それにあたります。撮った日ではありませんが、撮った日に送られてきた写真、つまり大半の写真では、実用上は十分近い日付です。

LINE の写真が Google フォトを経由して Takeout で戻ってきた場合は、横の .jsonphotoTakenTime があり、Google がアップロード日時を入れています。LINE の自動保存では、これも保存日にほぼ一致します。完璧ではありませんが一貫しています。仕組みは Google Takeout の JSON ファイルとは何か にあります。

取り戻せないもの

送り主が撮ってからずっと後に送った場合の、本当の撮影日。位置情報は常に。カメラ機種も常に。何人かを経由して転送された写真なら、ファイル名や更新日時の日付は最後の転送の日です。

本当の日付の唯一の出どころは、送り主の元のファイルです。大事な写真なら、写真としてではなくファイルとして送ってもらってください。ファイルとして送られたものは、元のまま届きます。

フォルダー全体に 1 つの日付を設定する

LINE の写真はひとまとまりであることが多いです。誰かが送ってくれた結婚式、両親が共有した旅行、親戚から転送された古いプリントのスキャン。いつ頃のことかは分かっていて、全部が正しい月に入ればいい。正確な時刻はどうでもいい。

exiftool なら、1 つのフォルダーに対して次のとおりです。

exiftool -DateTimeOriginal="2015:06:20 14:00:00" -overwrite_original .

フォルダー内のすべての JPEG にこの日付が入ります。場所も分かっていれば -GPSLatitude-GPSLongitude を足します。

注意点があります。LINE の保存フォルダーはたいてい混ざっています。自分が撮って送った写真の横に、受け取った写真があります。フォルダー全体に 1 つの日付を設定して正しいのは、そのフォルダーが 1 つの出来事のときだけです。先に出来事ごとのフォルダーに分けてください。

LINE の写真をメインのライブラリから分けておく

そもそもライブラリに入れたくない、という人も多いです。スマートフォンがスタンプや転送画像まで自動保存し、Google フォトがそれを全部バックアップしていた。Takeout のエクスポートでは見分けがつきます。Android なら LINE_ で始まる名前、EXIF にカメラ機種がない、という特徴です。

すべてを日付順に並べ替える代わりに、既存のフォルダー構成を保つテンプレートを使えば、LINE のフォルダーはそのまま独立して残り、あとで判断できます。整理の前に別フォルダーへ移しておくのが、いちばん簡単な分け方です。

アプリでやる場合

Takeout JSON Metadata Fixer は、LINE が消した日付を作り出すことはできませんし、できるふりもしません。できるのは、正直な 2 つの選択肢を簡単にすることです。あるものを使うか、自分で決めるか。

LINE の写真のフォルダーに対して、アプリは Takeout のサイドカーがあればそれを、次に EXIF を、次にファイル自身の日時を読みます。LINE の写真には最初の 2 つがないので、ファイルの日時、たいていのスマートフォンでは保存日が使われます。それが間違っているか、コピーを繰り返して今日の日付にリセットされているなら、フォルダーの日付設定を使います。フォルダー内のすべての写真に 1 つの日付と 1 つの場所を、市町村名か座標で指定します。アプリはそれを EXIF に書き込むので、日付と場所は Apple の「写真」でも Immich でも、写真と一緒に移動します。

ファイル名も直せます。LINE_ALBUM_2019..._1.jpg のような名前が 2019-07-14-1200.jpg などになります。ライブラリの他の写真と一緒に年/月フォルダーに入れることも、別にしておくこともできます。

Windows、Mac、Linux でオフラインで動き、画面は日本語です。1000 枚まで無料、無制限は 19.99 米ドルの買い切りです。

よくある質問

LINE の写真から元の撮影日を取り戻せるツールはありますか?

ありません。メタデータはファイルが届く前に取り除かれています。読むものが何もないのです。できると言うツールは、ファイル名かファイルの日時、つまり保存日を読んでいるだけです。

保存日の日付は信用できますか?

写真を保存したスマートフォンに届いた日です。撮った日に送られた写真なら、日単位では正しい。転送された写真や、誰かが掘り出した古い写真なら、間違っています。

ファイルとして送れば EXIF は残りますか?

はい。LINE がメタデータを消すのは写真として送るときです。ファイルとして送られた JPEG はそのまま届き、EXIF も GPS も付いています。大事なときは、その形で元のファイルを頼んでください。

日付を推測で設定していいのですか?

代わりが今日の日付なら、そのほうがいいです。正しい年の推測日なら、写真は前後の写真の近くに並びます。今日の日付では、他のすべての下に埋もれます。月しか分からないなら 1 日を選んでください。