- 主要キーワード: Google タイムライン ビジュアライザーのソースコードは、Android、iPhone のウェブ、デスクトップでのワークフローをカバーします。
- 主な入力データ: アニメーション旅行動画を作成する前に、ローカルの
Timeline.jsonファイルをエクスポートします。 - デスクトップのセットアップ: Python 3.9 以降、FFmpeg、および
requirements.txtに記載されたパッケージをインストールします。 - Android ビルド: JDK 17、Android SDK Platform 36、Build Tools 36.0.0 を使用します。
- プライバシーモデル: タイムラインデータはローカルに保持され、ベースマップタイルは CARTO にリクエストされます。
Google タイムライン ビジュアライザーのソースコード概要
GitHub の Google Timeline Visualizer リポジトリ は、エクスポートした Google マップのタイムラインファイルをアニメーション旅行動画に変換する、ソースコードが公開されたプロジェクトです。一般的なゲームやエンターテインメントプラットフォームではありません。主な目的は、ローカルでのタイムライン処理、アニメーション地図の描画、MP4 の作成、そしてプライバシーに配慮したファイル処理です。
このプロジェクトには、Android アプリ、iPhone ウェブアプリ、元となるデスクトップ版 Python ジェネレーターが用意されています。これらのバージョンでは、基本的に同じワークフローを使用します。タイムラインデータをエクスポートし、期間を選択し、ルートをプレビューして、動画をレンダリングします。
| コンポーネント | 主な役割 | 主な環境 |
|---|---|---|
| Android アプリ | タイムラインファイルをインポートして MP4 動画をレンダリング | Android 8.0 以降 |
| iPhone ウェブアプリ | Safari でエクスポートした JSON ファイルを処理 | iPhone Safari |
| デスクトップジェネレーター | コマンドラインまたは Python ワークフローから動画を作成 | Python を搭載したデスクトップ |
| リポジトリのビルドツール | Android バリアントのテスト、Lint、アセンブル | JDK 17 と Android SDK |
ローカルファイル処理
タイムライン JSON はデバイスストレージから選択されます。このプロジェクトでは、アカウントベースのクラウドワークフローにソースファイルをコピーしません。
アニメーション旅行
ルートマーカーが選択した移動履歴に沿って進みます。移動がまばらな旅行向けの補間や、カメラ移動の設定にも対応しています。
動画ライブラリ
完成した MP4 ファイルは、アプリのインターフェースからインデックス登録、再生、共有、移動、削除を行えます。
このプロジェクトはローカルの可視化パイプラインとして扱ってください。重要なセットアップ項目は、アカウントへのログインではなく、ファイルアクセス、レンダリング依存関係、マップタイル、ビルドツールです。
タイムラインのエクスポートと入力形式
ビジュアライザーを使用するには、エクスポートしたタイムラインファイルが必要です。iPhone では、Google マップの プロフィール写真 → 設定 → 個人的なコンテンツ → タイムラインデータをエクスポート からデータをエクスポートします。作成された Timeline.json ファイルを「ファイル」アプリに保存し、Safari から選択してください。
Android では、Google マップ内から直接ではなく、スマートフォンの「設定」アプリを使用してエクスポートします。設定 → 位置情報 → 位置情報サービス → タイムライン を開き、タイムラインデータをエクスポート を選択して、Downloads などのアクセスしやすい場所にファイルを保存します。
| プラットフォーム | エクスポート手順 | 次の操作 |
|---|---|---|
| iPhone | Google マップの個人的なコンテンツ設定 | Safari でウェブアプリを開く |
| Android | スマートフォンの設定、位置情報サービス、タイムライン | アプリで JSON ファイルを選択 |
| デスクトップ | エクスポートしたタイムラインファイルをコンピューターにコピー | Python ジェネレーターにファイルを渡す |
| 復元した履歴 | 最初に Google マップで履歴を復元 | その後、新しい JSON ファイルをエクスポート |
このソースコードは、現在の Android および iOS の直接配列形式のエクスポートに加え、semanticSegments 構造を使用する古いファイルにも対応しています。また、文字列値、latLng、度数ベースの値、geo: 座標、E7 座標など、複数の座標表現を認識できます。
対応するルートデータには、次のようなものがあります。
- タイムラインの経路
- アクティビティ
- 訪問
- まばらな長距離ルート
- 国際日付変更線をまたぐルート
- 警告とローカルでのノイズ低減を伴う、オプションの生の位置情報
スマートフォンの変更やリセット後に以前の旅行が見つからない場合は、まず Google マップで履歴を復元してください。Timeline Visualizer は Google の暗号化されたバックアップに直接アクセスできません。
公式のエクスポートおよび復元方法については、Google マップのタイムライン ヘルプを参照してください。このガイドでは 2026 年 8 月 25 日に内容を確認しています。
ステップごとのセットアップと動画レンダリング
最も簡単なワークフローは、JSON ファイルを準備し、日付範囲を選択し、ルートをプレビューして、MP4 を作成する方法です。正確なメニュー名はスマートフォンの機種によって多少異なる場合がありますが、プロジェクトの基本的な手順は共通しています。
Timeline.json を準備
Google マップまたは Android の位置情報設定からタイムライン履歴をエクスポートします。ブラウザー、ファイルマネージャー、またはアプリからアクセスできる場所にファイルを保存してください。
旅行の範囲を選択
動画作成フローを開き、タイムラインファイルを選択して、月単位の範囲または正確な日付を指定します。短い旅行だけを切り出す場合は、正確な日付が便利です。
プレビューを設定
距離の単位とカメラ移動スタイルを選択し、アニメーション化されたルートをプレビューします。最終レンダリングを開始する前に、地図の動きを確認してください。
MP4 を作成
動画の作成を開始し、進行状況を確認します。アプリには処理段階が表示され、残り時間が推定される場合があります。レンダリング中はキャンセルも可能です。
結果を保存または共有
完成した動画をローカルライブラリから開き、再生、共有するか、保存コントロールを使って別の場所にコピーします。
| 設定 | 利用可能な動作 | 実用的な用途 |
|---|---|---|
| 日付範囲 | 月単位の範囲または正確な日付 | 1 回の旅行や、より広い履歴に焦点を当てる |
| 距離の単位 | 選択可能な単位 | 視聴者や地域に合わせる |
| カメラ移動 | 設定可能な移動スタイル | 見やすい安定した動きにする |
| GPS フィルタリング | デフォルトは保守的、または Off | 不自然な孤立した往復地点を減らす |
| プレビュー | インタラクティブなルートプレビュー | レンダリング前にタイミングと地図の動きを確認する |
レンダリング中は、より古い移動履歴が移動するマーカーの後ろで徐々に薄く表示されるため、長期間のタイムラインでも追いやすくなります。長距離のフライトを含むまばらなルートは、大円航路に沿って補間されます。近距離の移動では、カメラがマーカーを追従する前に、マーカーを安定した中央エリア内に保つことができるため、通勤などでカメラが急激に動くのを抑えられます。
完成した動画の最後には、全ルートを表示する 1.5 秒間のズームアウト演出が追加され、全体図が短時間保持されます。Android 10 以降では、完成したファイルは Movies/Timeline Visualizer に保存されます。Android 8 および 9 では、システムの「名前を付けて保存」ピッカーが使用されます。
最終 MP4 を作成する前に、旅行全体をプレビューしてください。これにより、日付範囲が広すぎないか、予期しない GPS 地点がないか、ルートに合わないカメラ移動になっていないかを確認できます。
デスクトップ版 Python と Android ビルド
Python ベースの処理を好むユーザー向けに、元のデスクトップジェネレーターも引き続き利用できます。文書化されている要件は、Python 3.9 以降、FFmpeg、および requirements.txt に記載されたパッケージです。
基本的な依存関係のセットアップは次のとおりです。
python -m pip install -r requirements.txt
リポジトリのドキュメントには、visualizer.py、入力するタイムラインファイル、選択した年、カメラ移動オプションを使用した Python の実行例も記載されています。
python visualizer.py --input Timeline.json --year 2026 --camera-movement steady
このコマンドを開始点として使用し、大規模なバッチ処理をスクリプト化する前に、現在のリポジトリで利用できる引数を確認してください。ファイルパス、日付の選択、利用可能なオプションは、チェックアウトしたリビジョンに合わせる必要があります。
| ビルド対象 | 必須ツール | 検証コマンド |
|---|---|---|
| デスクトップ版 Python ジェネレーター | Python 3.9 以降、FFmpeg、requirements.txt | エクスポートした JSON ファイルで Python ジェネレーターを実行 |
| Android デバッグビルド | JDK 17、Android SDK Platform 36 | ./gradlew assembleGithubDebug |
| Android Play ビルド | JDK 17、Android SDK Platform 36 | ./gradlew assemblePlayDebug |
| Android 品質チェック | Gradle ツールチェーン | ./gradlew test lint |
| Python テスト | 開発用要件 | python -m pip install -r requirements-dev.txt および python -m pytest |
Android 開発向けに文書化されているツールチェーンには、JDK 17、Android SDK Platform 36、Build Tools 36.0.0 が含まれます。リポジトリのテスト手順では、Android の検証と Python 依存関係のインストール、pytest の実行を組み合わせています。
可能であれば、ローカルの JDK、Android SDK、Build Tools、Python、FFmpeg のバージョンを固定してください。ツールを統一すると、レンダリングやリリース時のトラブルシューティングが容易になります。
参照したドキュメントでは、Android アプリは Google Play ではなく、リポジトリのリリースを通じて配布されています。APK を直接インストールする場合は、リポジトリからリリースアセットをダウンロードし、インストールパッケージを選択する際にチェックサムファイルを避けてください。この配布方法では、Android によって Google Play 外からのインストールに関する警告が表示される場合があります。
プライバシー、ストレージ、トラブルシューティング
プライバシーは、このプロジェクトの設計における中心的な要素です。タイムライン JSON ファイルはアップロードされません。プロジェクトで説明されているネットワーク依存機能はベースマップのみです。CARTO は表示された地図エリアへのリクエストを受け取り、OpenStreetMap データに基づくタイルを提供します。
つまり、ルートファイルとマップタイルは分けて考える必要があります。
| データまたはサービス | プロジェクトの動作 | プライバシー上の考慮事項 |
|---|---|---|
| タイムライン JSON | ローカルで処理 | アプリによってファイルがアップロードされることはない |
| Google サインイン | タイムラインへのアクセスに不要 | サインインによってスマートフォンのタイムライン履歴が公開されることはない |
| CARTO ベースマップ | 表示する地図エリアをリクエスト | タイルリクエストから閲覧した地域が推測される可能性がある |
| MP4 出力 | ローカルに保存 | ファイルの共有や移動は意図的に行う |
| 動画インデックス | ローカルのメタデータとサムネイルを保存 | エントリを削除しても MP4 が削除されるとは限らない |
アプリは完成した動画用に小さなローカルインデックスを保持します。エントリには、サムネイル、タイトル、タイムラインの期間、再生時間、作成日などを含めることができます。リストから削除 は MP4 に影響を与えません。一方、動画を削除 は別の確認付き操作であり、ストレージプロバイダーが許可する場合はファイルを完全に削除できます。
ワークフローが失敗した場合は、次のトラブルシューティング手順を使用してください。
- タイムラインメニューが見つからない場合は、スマートフォンの位置情報設定を確認し、Google の最新のヘルプ表示を参照してください。
- ファイルを再度開けない場合は、ファイルが移動されていないことと、ストレージ権限が引き続き利用できることを確認してください。
- 古い旅行が表示されない場合は、Google マップで履歴を復元して、新しい JSON ファイルをエクスポートしてください。
- プレビューが不安定に見える場合は、GPS フィルタリングとカメラ移動の設定を確認してください。
- APK をインストールできない場合は、Android のバージョンを確認し、選択したブラウザーまたはファイルマネージャーからのインストールを一時的に許可してください。
ソースコードセットアップチェックリスト:
- 新しい Timeline.json ファイルをエクスポートする
- 選択した日付範囲と座標形式を確認する
- 必要に応じて Python、FFmpeg、または Android ビルドツールチェーンをインストールする
- MP4 をレンダリングする前にルートをプレビューする
- マップのプライバシーとローカル動画の保存設定を確認する
タイムラインファイルはローカルに保持されますが、ベースマップへのリクエストによって、プレビューやエクスポートした動画に表示される地域が明らかになる可能性があります。機密性の高い履歴を読み込む前に、マップのプライバシーに関する注意事項を確認してください。
FAQ
Q: Google タイムライン ビジュアライザーのソースコードでは何を作成できますか?
エクスポートした Google マップのタイムラインデータをアニメーション旅行動画に変換するツールをサポートしています。Android アプリ、iPhone ウェブアプリ、デスクトップ版 Python ジェネレーターが含まれます。
Q: Timeline Visualizer は私の Timeline.json ファイルをアップロードしますか?
プロジェクトのドキュメントでは、タイムラインファイルはアップロードされないと説明されています。ネットワークを使用するのはベースマップ機能であり、CARTO は表示された地図エリアへのリクエストを受け取ります。
Q: Android プロジェクトのビルドには何が必要ですか?
文書化されている Android の要件は、JDK 17、Android SDK Platform 36、Build Tools 36.0.0 です。リポジトリには、テスト、Lint、ビルドのアセンブル用 Gradle コマンドも用意されています。
Q: このプロジェクトで、失われた Google マップのタイムライン履歴を復元できますか?
いいえ。まず Google マップで履歴を復元し、その後に新しい JSON ファイルをエクスポートしてください。Timeline Visualizer は Google の暗号化されたバックアップに直接アクセスできません。
エクスポートした JSON、生成した MP4、使用したソースリポジトリのバージョンをそれぞれ分けて記録してください。これにより、元のデータと完成したメディアを混同せず、将来の再レンダリングを簡単に行えます。