こんには、山田ハヤオです。みなさんは普段アニメをどうやって見ていますか?
リアルタイムで見る以外は動画サービスを契約するか録画、DVDやBDを借りるなど手段が限られています。
ハヤオはずっとDアニメを契約しているのでそれでいろんなアニメを見ています。
Dアニメの謎な仕様
DアニメはPCでの動画の再生時がちょっと不便です。
例えばゆるキャンの場合、このピンク色の「視聴する」ボタンを押せば見られるのですが、このボタンは普通のリンクではありません。
通常のクリックをすると新しいウィンドウで再生されますが、新しいタブで開くと空のページが表示されてしまいます。
ウィンドウが新しく立ち上がるというのは正直不便なのでなんとかしてタブで開こうと思います。
URLについて
この新しいウィンドウ、所詮はChromeなので新しいタブでも開けるはずです。
ここでアドレスバーに注目するとこの動画のURLがあります。
これを新しいタブに貼り付けてみましょう。
キタ━━━━(゚∀゚)━━━━!!
きました!ポップアップのURLを貼り直せば見られます!
これで今日のブログを終わりにします!
ではありません!いちいちポップアップ開くとか面倒すぎてやってられません。
JavaScriptを使う
ここで気になったことがあります。
最初の再生ボタンがあったページのリンクを見直してみると
そしてコピペしたポップアップのアドレスを見ると
partIdというのが共通になっています。どうやらこの数値でどの動画かを特定していたようです。
それならば話は簡単、partIdをJavaScriptで取得してポップアップのアドレスを生成、新しいタブで開いてあげれば良いのです。
早速JavaScriptを書いていきます。
let url = new URL(document.location);
let partid = url.searchParams.get('partId');
let player_url = "https://anime.dmkt-sp.jp/animestore/sc_d_pc?partId=" + partid;
if (partid != null){
window.open(player_url);
}
URLオブジェクトを生成後、searchParams.get()
で指定したパラメータの値を取得しています。
その後、プレイヤーのURLと取得したIDを結合してURLを生成、partIdの取得に成功していれば新しいタブを開きます。
最初に書いたこれだとちょっと長いので変数定義を省略して以下のようにします。
変数を使わないで書いただけで処理は何も変わりません。
var partid = (new URL(document.location)).searchParams.get('partId')
if (partid != null){window.open("https://anime.dmkt-sp.jp/animestore/sc_d_pc?partId=" + partid);}
あとはこれをDアニメのサイト上で実行できれば良いわけです。
最初はChrome拡張を開発しようと思いましたが、もっと簡単な方法を思い出しました。
任意のサイト上でJavaScriptを実行する
こういうときはChrome拡張を作成する以外の方法として「Tampermonkey」や「Greasemonky」といった拡張機能を使う方法が有ります。
でもなんか気に食わなかったのでもっと簡単な方法を使います。
まず適当なサイトでブックマークを作成します。
次にブックマークを以下のように編集します。
名前には好きな名前を入れてください。URL部分はちょっと工夫します。
javascript:<先程のJavaScriptコード>
これでブックマークができあがります。
使ってみる
まず先程の再生ボタンのページまで開きます。
そしてここで再生ボタンを押さずに先程作成したブックマークをクリックします。
これで再生画面が新しいタブで開けば成功です。
ゆるキャンとまどマギ、らき☆すたの各1話、2話で検証しましたが全部うまくいったのでおそらくDアニメ共通の仕様だと思います。
DアニメのURLの変更などの大幅な仕様変更がない限りこのjavaScirptコードが動くはずです。
コメント