Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
17
Help us understand the problem. What is going on with this article?

More than 1 year has passed since last update.

@yumetodo

Qiita API v2 を使って自身の全投稿をエクスポートするJavascriptを書いた

きっかけ

「Qiita」運営会社、スマホゲームのエイチームが買収 - ITmedia ビジネスオンライン
というニュースが昨年末駆け巡った。

image.png
image.png

まあすぐQiitaがどうこうなったりはしないだろうが、なにごともバックアップは必要だ。そもそもみんなだいすきpixivだって新宿某所をゴジラに襲われたらデータ全ロスするわけで、我々が愛用するインフラなんて結構脆かったりする。

先行事例

Qiita API v2 を使って自身の全投稿をエクスポートする Python スクリプトを書いた - Qiita

なんて記事を見つけた。

問題

  • Python 2である
  • 画像のダウンロードをやってくれない
  • 投稿数が100を超えて取得できない
  • HTMLデータやコメントなどのMarkdown以外のデータを保存してくれない
  • Pythonわからない

という不満があった。自分がよくわかってるのはC++かJavaScriptだ。しかしC++でHTTPS通信とか地獄すぎる。JavaScriptしかないやろ。しかもasync/awaitがある。これはいい。

つくった

yumetodo/qiita_export_all: Qiitaの記事を画像とコメントも含めて全部DLする

使い方

細かいことはREADMEをみてもらうとして、git cloneしてnpm startすると

.
├── img
│   ├── 0_7.png
│   ├── 1_7.png
┊   ┊
├── items
│   ├── [ネタ]私のTLのみんながpure HTMLが何かを理解してくれない件
│   │   ├── comments
│   │   │   ├── 2017-02-02T145121+0900
│   │   │   │   ├── index.html
│   │   │   │   ├── info.json
│   │   │   │   └── README.md
│   │   │   ├── 2017-02-02T153542+0900
│   │   │   │   ├── index.html
│   │   │   │   ├── info.json
│   │   │   │   └── README.md
│   │   │   ├── 2017-02-02T160946+0900
│   │   │   │   ├── index.html
│   │   │   │   ├── info.json
│   │   │   │   └── README.md
│   │   │   ├── 2017-02-02T173054+0900
│   │   │   │   ├── index.html
│   │   │   │   ├── info.json
│   │   │   │   └── README.md
│   │   │   └── 2017-02-02T181039+0900
│   │   │       ├── index.html
│   │   │       ├── info.json
│   │   │       └── README.md
│   │   ├── index.html
│   │   ├── info.json
│   │   └── README.md
┊   ┊

のようなものができる。

なんでこんなDirectory構造かというと、GitHubではREADME.mdはDirectoryを開いたときに下に表示してくれるのでこうしている。まああと、そっくりそのままGitBookにしてしまうとかもできる気がする。

追記: 2020/03/06

v1.3.0をリリースしました。これによって、いちいちcloneしてこなくてもnpx qiita_export_allのように実行できるようになりました。
https://github.com/yumetodo/qiita_export_all/releases/tag/v1.3.0

License

CC BY 4.0

CC-BY icon.svg

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
17
Help us understand the problem. What is going on with this article?