🖼️

Slideshareからスライドをエクスポートする

2025/01/13に公開

Slideshareは昨今広告が多く、通常の閲覧が実質的に不可能になっているため、アカウントの削除をすることにした。
アカウント削除前にこれまで上げていたデータをエクスポートしておくことができるが、JSONもしくはCSVでメタデータが取得でき、実際のスライドデータはそこから出てきたURLを1つずつブラウザで開くようになっている。
ブラウザを開くと「ダウンロードが始まります」の表示がなされたあとにJavaScriptで遷移する仕組みになっており、サクッと全データをエクスポートできない。

jqとJavaScriptコンソールで対応したので、記録として対応方法を書き残しておく。

まず、エクスポートされたJSONからURLを抽出する。この後使うdl関数でラップされた形にしておく。

$ cat SlideShare_user_data_2024-12-28\ 17_22_33\ +0000.json  | jq -r '.slideshows_uploaded[] | "dl(\"" + .download_url + "\");" '
dl("https://www.slideshare...");
...

次に、ダウンロードURLをiframeで埋め込むスクリプトと、このスクリプトの出力を結合して、slideshareのページ内からDeveloper ToolのJavaScriptコンソールに打ち込む。

function dl(url) {
  const iframe = document.createElement('iframe');

  iframe.style.width = '0';
  iframe.style.height = '0';
  iframe.style.border = 'none';

  iframe.src = url;
  document.body.appendChild(iframe);
}
dl("https://www.slideshare...");
...

実行したタイミングで一括でダウンロードが始まるが、Chrome/Edgeだと一気にダウンロードをさせると複数ダウンロードをブロックされるので許可が必要になる。

Discussion