DQ10 冒険者の広場 思い出アルバム ダウンロード保存/エクスポート用ブックマークレット

ドラゴンクエストX(ドラクエ10, DQ10)のゲーム内で写真を撮ると冒険者の広場の思い出アルバムで閲覧出来ます。
しかし100枚以上撮影すると古い方から消えていってしまうので、ロックしたり、「パソコンに保存する」ことでダウンロード・バックアップするのが推奨されています。
https://hiroba.dqx.jp/sc/public/playguide/guide_5_5

しかしそのまま画像のみを保存すると写真の下に付記されている撮影情報(撮影日・場所)が失われてしまいます。
ブラウザのスクリーンショットを取ったり、1枚ずつ名前を付けて保存していくのは面倒なので、簡単に撮影情報をファイル名に適用できる方法を考えました。
(※Windows版のFirefox専用 最近のFirefoxでは動作しなくなりました。WaterfoxかChromeを使って下さい。→2019年11月より再び動作可になりました。→リンク

#最新版(Chrome対応)へ

[旧版] DQX 思い出アルバム保存補助ブックマークレットv1 for Firefox+dTa推奨版

2013.01.20公開
http://let.hatelabo.jp/fashi/let/gYC-y4r0_-TJfg

◆使い方

  1. ブックマークレットを登録
  2. 冒険者の広場の思い出アルバム(画像が9個並んでるとこ)で実行
  3. ファイル名付き画像一覧画面が出る(要ポップアップ許可)
  4. リンクを名前を付けて保存するなり、DownThemAll!で保存するなり。
    DownThemAll!で保存する際には、フィルターを「すべてのファイル」にする必要があります(拡張子がついていないため)

◆仕組みと経緯

オリジナルのURLにセミコロン付きの文字列を足してやると、
冒険者の広場のサーバーではセミコロン以下が無視され、
Firefoxでは「名前を付けて保存」する時にセミコロンより後の文字列がファイル名になることを利用

ダウンローダーをいろいろ試したところ、
DownThemAll! というアドオンならばファイル名を活かしたままDLできるので推奨とした。

◆懸念点

余計な文字列が入ったクエリを冒険者の広場に投げるので、アクセス解析などに悪影響を与える可能性がある
変なクエリは投げないようにしたい
→次のバージョンへ

◆メモ

「名前を付けて保存」でファイル名が入ってくるのは使えそうなので一応残しておく。

[旧版] DQX 思い出アルバム保存補助ブックマークレットv2 Firefox+dTa専用版

2013.01.21公開
http://let.hatelabo.jp/fashi/let/gYC-y4vG6rOCIw

◆使い方

  1. ブックマークレットを登録
  2. 冒険者の広場の思い出アルバム(画像が9個並んでるとこ)で実行
  3. ファイル名付き画像一覧画面が出る(要ポップアップ許可)
  4. 画像やリンクじゃないところで右クリック等からDownThemAll!を開く
  5. フィルターを smpicture に、ファイル名の規則を *text*.*ext* に設定(初回のみ)
  6. 開始ボタンでDL
  7. 2回目以降はdTa OneClickで実行可能

◆仕組みと経緯

↑のスクリプトを作る際にFirefoxで使えるダウンローダをいろいろ試し、
↑の方法でちゃんとファイル名が入ってくるアドオンを見つけたのでdTa推奨版ということにしたわけだが、
この DownThemAll! アドオンに備わっている機能を使えば、URLに細工をしなくてもアンカーテキストをファイル名に出来ることに気付いた。

具体的には「ファイル名の規則」をデフォルトの「*name*.*ext*」から「*text*.*ext*」に変えるだけ。

最初は↑と同様フィルターを「すべてのファイル」にして使っていたのだが、
間違ってブックマークレットを実行する前にdTaを実行してしまうと悲惨なことになる
(具体的にはログアウトボタンをDLしてしまうのでログアウトしてしまう)
ので、フィルターのカスタマイズで「smpicture」を指定することを説明に折り込む。

◆説明動画

自分では良い感じの手法を確立出来たと思ったので説明動画を作った。


◆懸念点

動画には撮れなかったのだが、最初にポップアップを許可する必要がある。
ポップアップ禁止のまま使いたいユーザーが多いのではなかろうか?
→次のバージョンへ

◆メモ

動画を撮り直すのが面倒なので残しておく。

[旧版] DQX 思い出アルバム保存補助ブックマークレットv3 Firefox+dTa専用ポップアップしない版

2013.01.24公開
http://let.hatelabo.jp/fashi/let/gYC-y4211ajoWg

◆使い方

  1. ブックマークレットを登録
  2. 冒険者の広場の思い出アルバム(画像が9個並んでるとこ)で実行
  3. 写真の下にファイル名付きDLアンカーが出る
  4. 画像やリンクじゃないところで右クリック等からDownThemAll!を開く
  5. フィルターを 「original」 に、ファイル名の規則を *text*.*ext* に設定(初回のみ)
    → (2017.07.08) v5とexでは「/smpic.*xl/」にします
    →(2019.11)新しいFirefox用DownThemAll!ではフィルタを「全てのファイル」に、高速フィルタリングを「/smpic.*xl/」に、「他を無効にする」をチェックします。
  6. 開始ボタンでDL
  7. 2回目以降はdTa OneClickで実行可能

◆仕組みと経緯

dTaのフィルタ文字列を工夫すればこのブックマークレットで生成したリンクだけを抽出することが可能なので、
ポップアップせずに埋め込むバージョンを作った。
「smpicture」だとサムネイルとかぶるので「original」で抽出すれば良い。

◆説明動画

そのうち作る。 作った。



DQX 思い出アルバム保存補助ブックマークレットv4/v5 Firefox+dTa専用

2013.04.01公開
(v4) http://let.hatelabo.jp/fashi/let/gYC-x7iY-8SbcA
(v5) http://let.hatelabo.jp/fashi/let/hJmdiLCF7dJ9
(v5 https版) [DQXアルバム保存補助v5](このリンクをブックマークバーにドラッグするか右クリックからブックマークに登録)

◆使い方

  1. v3と同じ(リンクじゃないところでDownThemAll!)
  2. ライブカメラ画像の拡大したところで使うとライブカメラ画像の命名リンクも生成(リンクを右クリックしてDownThemAll!でリンクを保存)
  3. 2017.07.08注記:フィルターの指定文字列変わりました

◆経緯

ライブカメラの画像を保存する際にも名前が付けられるようにした。

◆更新履歴

2013.04.01 v4.0
2013.05.30 v4.1 公式にダウンロード用リンクが出来たのでURLを合わせた(末尾に?dlを付けただけ)
2013.07.22 v4.2 イベント画像も同様に名前を付けるようにした
2013.07.24 v4.2a 動かなくなったのを修正
2014.03.11 v4.3 冒険日誌(日誌を書いてない方)と写真詳細画面でも動くようにした(日誌一覧では時刻情報がない代わりに撮影場所が細かい。思い出アルバムで内部で詳細ページ読み込んで撮影場所取得したいところだけどさすがに負荷かかるよね…)
2014.03.12 v4.3a aタグにdownload属性追加してみた。ChromeではContent-Disposition無視して使ってくれるって情報あったけど今のはダメだった。あと改行コードゴミ消し。
2015.12.24 v4.3b 広場の仕様変更に対応
2015.02.07 v4.3b2 修正漏れを修正
2016.04.23 v5β コードリファイン中
2016.12.28 v5β2 他のユーザーの思い出アルバムでも動作するよう修正
2017.07.08 v5β3 広場の仕様変更(高画質化)に対応、originalではなくxlに変わっているのでフィルタ設定注意
2017.07.09 v5β3b 初回実行時のみフィルタ指定が変化したことを告知するようにした
2018.01.31 v5β3b WaterfoxとChromeでの動作を確認(下記にChromeでの動画追加)
2018.05.30 v5β3b 広場がhttpsになったのでhttps版を用意

DQX 思い出アルバム保存補助ブックマークレットv6

2021.03.31公開
[DQXアルバム保存補助v6](このリンクをブックマークバーにドラッグする)

◆使い方

<準備>
  1. Multiple File Downloaderをインストール
  2. ブックマークレットをブックマークバーなどに登録
  3. Chromeの詳細設定にある「ダウンロード前に各ファイルの保存場所を確認する」を一時的にオフにする
<実行>
  1. 冒険者の広場の思い出アルバムを表示(https://hiroba.dqx.jp/sc/character/**********/picture/all)
  2. 最初は画像が出てないので保存したいところまでスクロールしてサムネイルを表示させる
  3. ブックマークバー等から登録したブックマークレットをクリック
  4. 写真の下にファイル名付きDLアンカーが出る
  5. ツールバーからMultiple File Downloaderのアイコンをクリック
  6. 「Destination」に適当な名前(フォルダ名)を入れてDownloadボタンを押す

◆経緯

広場の思い出アルバムに一括ダウンロード機能が実装されたけど思ってたのと違うので従来のスクリプトを修正し対応。
手順説明はGoogle Chrome用にした。

◆説明動画

◆更新履歴

2021.03.31 v6 広場の仕様変更に対応
2021.05.05 説明動画作成

DQX 思い出アルバム保存補助ブックマークレットex

2014.03.13公開
http://let.hatelabo.jp/fashi/let/hJmdl67ngtFs
https版 [DQXアルバム保存補助ex](このリンクをブックマークバーにドラッグするかブックマークに登録)

◆使い方

◆経緯

詳細画面から長い撮影場所を取ってくるバージョン。
サブレ@sable_dqxさんのブックマークレット眺めて「あ、jQuery使えるんだ…、それなら簡単に書けそう」ってことでjQueryで書いてみたけど、サーバーに負荷をかけないようにインターバルを置くところでもうわけわかめ。さっぱりうまくいかないので配列に入れてDeferredのpipeで実行させるところはパクりました。
ついでにImageオブジェクトをBlobに入れてリンク生成すればdTa不要になるやも、と思ったけどうまくいかなくて挫折。
亜流版ってことで、v4・v5とは別扱いにします。生成ファイル名もちょっと違います。

◆更新履歴

2014.03.13 ex (作り直しだけど機能的にはv3派生)
2014.03.14 ex 日時表記変更(8~31時)、ロック中を示す文字列変更
2014.03.18 ex 生成ファイル名変更、インターバルを1秒から1.5秒に変更
2015.12.24 ex 広場の仕様変更に対応
2017.07.08 ex 高画質版に対応、originalではなくxlに変わっているのでフィルタ注意
2017.07.09 ex 初回実行時のみフィルタ指定が変化したことを告知するようにした
2018.05.30 ex https版 / フィルタのみファイル名に追加
2020.06.21 ex フィルターにHTMLタグが混ざるのを修正
2021.04.01 ex 広場の仕様変更に対応

諸注意


ドラゴンクエスト/DRAGON QUEST、目覚めし五つの種族は、日本およびその他の国におけるスクウェア・エニックス・グループの商標または登録商標です。

リンク

◆[旧版] 必要なツール


※2018年1月現在、Firefoxブラウザの仕様変更によりDownThemAll!アドオンは動作しなくなりました。
 代わりにWaterfoxブラウザを推奨します。
 (ただし、WatorfoxブラウザはOSが32ビットオペレーティングシステムだと動きません)

※2018年11月以降、DownThemAll!アドオンの旧バージョン(v3.0.8)は公式サイトからダウンロードできなくなりました。
 Waterfoxに新規インストールするにはClassic Add-on Archive Extensionの導入が必要になります。caa:addon/downthemall

※2019年9月以降、DownThemAll!が新しいFirefoxに対応しました。
 Waterfoxでのアドオン追加が面倒になったので再び公式のFirefoxブラウザで導入する方が簡単になりました。


ChromeブラウザではMultiple File Downloaderが利用出来ました。
 (Firefox版の同アドオンは挙動が微妙でした)

 
 初回にFirefox+DownThemAll!の説明が出るのは無視して下さい。

Chromeの詳細設定にある「ダウンロード前に各ファイルの保存場所を確認する」はオフに。
Chromeダウンロード設定

◆検索して見つけた他の手法による保存ツール(無断リンク)


その他

◆autopagerize

2021.3.31~ 広場がデフォルトで全画像表示になったので下記は不要になりました。

全ページ表示して実行したら一気に取得出来るけどそんなサーバに負荷かける行為は…と思ったけどDownThemAll!側でDL数しぼればいいですね。ってことで組み込もうかと思ったけど普段は必要ないので代用品。
AutoPagerize for Greasemonkeyで定義追加
profile/gm_scripts/autopagerize/autopagerize.user.js
var SITEINFO = [
    {
        url:          'https://hiroba\\.dqx\\.jp/sc/character/\\d+/picture/',
        nextLink:     '//a[@class="pagerNext"]',
        pageElement:  '//table[contains(concat(" ",normalize-space(@class)," "), " contentsTable1 ")]',
        exampleUrl:   '',
    }
]
ただし手抜きなのでこれをやると普通に閲覧(サムネイルクリックして拡大表示)が出来なくなります。
迷惑なのでwedataに登録したりしないでください。

ついで。
    {
        url:          '^https://hiroba\\.dqx\\.jp/sc/diary/\\d+/',
        nextLink:     '//a[@class="pagerNext"]',
        pageElement:  '//div[contains(concat(" ", @class, " "), " bdBox1 ")]',
        exampleUrl:   '',
    }


Chromeブラウザの場合はuAutoPagerize。でMY_SITEINFOを編集。
MY_SITEINFO = [
    {
        url:          'https://hiroba\\.dqx\\.jp/sc/character/\\d+/picture/',
        nextLink:     '//a[@class="pagerNext"]',
        pageElement:  '//table[contains(concat(" ",normalize-space(@class)," "), " contentsTable1 ")]',
        exampleUrl:   '',
    },
    {
        url:          '^https://hiroba\\.dqx\\.jp/sc/diary/\\d+/',
        nextLink:     '//a[@class="pagerNext"]',
        pageElement:  '//div[contains(concat(" ", @class, " "), " bdBox1 ")]',
        exampleUrl:   '',
    }
]

◆ファイル名から更新日時

こんな記事あるし昔はあった気がするんだけどなんか見つからなかったので、vbsで作りました。
SetTimeStamp.vbs
ファイル(フォルダではないです)D&Dでファイル名に合わせて更新日時を弄ります。
使い方はv3の動画の0:03:39あたりから。
WindowsXPでは一度にたくさんやりすぎるとエラー出ます。

◆重複ファイル削除

ファイル名規則が変わったせいで違う名前の同じ写真がいっぱい出来ちゃったよ、という人は重複ファイル削除ツールを使いましょう。
似たようなソフトいろいろあるけど、自分の使ってるのはこのへんで。長いファイル名を残してもう一方を削除、とか出来るので、それで。