Skip to content

v0.4.0

Latest

Choose a tag to compare

@yager yager released this 16 Sep 12:47

ハイライト

GoPro を複数台お使いの方向けの版です。ファイル名の採番は機体ごとに独立しているため、GX010001.MP4 は 2 台目でも普通に生まれます。既定の保存先 {date:%Y-%m-%d}_GoPro は機体を区別しないので、同じ日に 2 台から取り込むと同一フォルダに同名のファイルが集まります。

この版で、保存先を機体ごとに分けるための {serial} を追加し、あわせて同名衝突で完成済みのファイルが黙って上書きされないよう歯止めを入れました。

1 台だけでお使いの場合、設定を変えなければ挙動は変わりません。

追加したこと

保存先のフォルダ名に {serial} が使えます

{model} では同じ機種の 2 台を区別できないため、シリアル番号を使います。全体は 14 文字でフォルダ名には長いので、{serial:4} で末尾 4 文字だけを取り出せます。

folder = {date:%Y-%m-%d}_{model}_{serial:4}    ; → 2026-09-16_MISSION1PROILS_2388

推奨はこの形です。重複を避けるだけなら {serial:4} だけで足りますが、2026-09-16_2388 では後から何で撮ったのか分かりません。{model} を挟むと読めるフォルダ名になります。

シリアル番号自体は以前から gpget probe が表示していました。テンプレートに繋がっていなかっただけです。

同名で中身の違うファイルを上書きしなくなりました

ディスク上のファイルがカメラの申告より大きい場合、置き換えずにその 1 件だけを飛ばします。カメラが言うより長いファイルは、転送が途中で切れたファイルではありえません。別のファイルが同じ名前を名乗っていると判断します。

sync の表示はこうなります。

NAME TAKEN by a different file — skipped (set general.folder per camera, or overwrite = rename)

これまでは既定の overwrite = skip でも1 台目の完全なファイルが 2 台目の中身で上書きされていました。

変わったこと

{cam} から空白が消えます。GoPro 25412388 ではなく GoPro25412388 になります。{model} は元から空白とハイフンを落としていたのに {cam} だけ Wi-Fi の SSID をそのまま出していて、揃っていませんでした。フォルダ名はシェルで打つものなので、区切りは落とします。

gpget probe が表示する wifi ssid は実際の SSID なので、こちらは変わりません。

アップデートするときにやること

folder に {cam} を使っていなければ、バイナリを入れ替えるだけです。設定と保存済みファイルへの影響はありません。

gpget autostart install

folder を変える場合は、先に既存のフォルダを新しい名前に直してください。gpget は「すでに取得済みかどうか」を保存先のパスから判断するので、フォルダ名だけ変えると全件が再ダウンロードになります。

安全な順序はこうです。

  • gpget status で未オフロードが残っていないことを確認する
  • 既存のフォルダを新しい命名に手で改名する(2026-09-16_GoPro → 2026-09-16_MISSION1PROILS_2388)
  • 設定の folder を書き換える
  • gpget status をもう一度実行し、再ダウンロード対象が増えていないことを確認する

{cam} を使っていた場合も同じ手当てが必要です。

検証状況

macOS / MISSION 1 PRO ILS(FW H26.03.03.00.00)の実機で {serial:4} の展開を確認しました。folder = {date:%Y-%m-%d}_{model}_{serial:4} が意図どおりのフォルダを作り、同期が通ります。

同名衝突の側は単体テストのみです。2 台の実機を同時に繋いだ検証はしていません。internal/xfer/collision_test.go で、skip が大きい既存ファイルを残すこと、rename が両方を残すこと、replace が従来どおり上書きすることを固定しています。

Windows・Linux は共通コードなので変更は反映されていますが、自動起動は引き続き実機未検証です。

注意

サイズが偶然一致する衝突は検出できません。gpget は取り込んだファイルがどの機体から来たかをどこにも記録していないため、同名・同サイズのファイルは「すでに取得済み」として飛ばします。チャプター分割は固定サイズで切れるので、この一致は現実に起こりえます。保存先を機体ごとに分けるのが唯一確実な回避策です。

ディスク上のファイルが申告より小さい場合は、従来どおり置き換えます。転送が途中で切れたファイルと区別がつかないためです。両方を残したい場合は overwrite = rename を使ってください。

自動起動は 2 台の同時接続に対応していません。先に応答した 1 台だけを扱います。どちらが先になるかは不定で、1 台目を挿したまま 2 台目を挿しても何もしません。2 台目は手動の gpget sync --ip <addr> で取り込んでください。手動コマンドは複数台を見つけると multiple GoPro-looking cameras found; pass --ip と機体一覧を出して止まります。

バージョンが 0.x の間は、コマンドの形や設定ファイルの項目が変わることがあります。