# Back up your Ghost blog with RSS (with Images 🌉)

**URL:** <https://forum.ghost.org/t/back-up-your-ghost-blog-with-rss-with-images/14572>\
**Category:** Using Ghost\
**Created:** [May 22, 2020, 8:05am UTC](https://forum.ghost.org/t/back-up-your-ghost-blog-with-rss-with-images/14572 "2020-05-22T08:05:18Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![anaclumos](https://avatars.discourse-cdn.com/v4/letter/a/eb8c5e/32.png) [@anaclumos](https://forum.ghost.org/u/anaclumos)\
**Post date:** [May 22, 2020, 8:05am UTC](https://forum.ghost.org/t/back-up-your-ghost-blog-with-rss-with-images/14572/1 "2020-05-22T08:05:18Z")

</div>

Hi 🙌 everyone

I am really enjoying the Ghost 👻 blogging experience. But there were a few problems – and one of them was the fact that there wasn’t a simple way to back up all of the posts in “human-readable form.” Yes, Ghost does provide a backup feature on the admin page, but 1) it is not human-readable, and 2) it does not back up images. Even if you access the ghost server to restore the pictures, the pictures are organized by the uploaded date, so it was a hassle to figure out which photo belonged to which post.

So, I developed a short python script that would back up the entire blog posts with RSS. It downloads all of the images and replaces the embedded photos so that it would serve as a static archive of any Ghost blog. It works with Ghost, Wordpress, Jekyll-based GitHub Pages, Gatsby-based GitHub Pages, Medium, as I checked.

This project does not intend to replace Ghost’s back up feature. It will work alongside it. Use Ghost’s default backup system to back up all of the blog’s data, and use this to back up images and to create a readable archive.

Note: Ghost’s RSS feed only includes 15 posts. Therefore, if you use the default settings for Ghost, this backup script will only include the most recent 15 posts.

Any suggestions or ideas are welcomed 😄

GitHub link below 👇

> **[GitHub - anaclumos/tools-backup-with-rss: Create a snapshot of your blog —...](https://github.com/anaclumos/tools-backup-with-rss)**
>
> Create a snapshot of your blog — only with one RSS URL. For internal use only. Use it at your own risk. - GitHub - anaclumos/tools-backup-with-rss: Create a snapshot of your blog — only with one R...

---

<div class="post-metadata">

**Author:** ![John](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/john/32/29288_2.png) [@John](https://forum.ghost.org/u/John)\
**Post date:** [May 22, 2020, 8:08am UTC](https://forum.ghost.org/t/back-up-your-ghost-blog-with-rss-with-images/14572/2 "2020-05-22T08:08:04Z")

</div>

Cool idea. You could also try the Content API, which includes all of the posts - and more meta data that is not availalbe in RSS 🙂

> **[Ghost Content API Documentation](https://ghost.org/docs/content-api/)**
>
> Ghost's RESTful Content API delivers published content to the world and can be accessed by any client to render a website. Read more on Ghost Docs.

---

<div class="post-metadata">

**Author:** ![DavidDarnes](https://sea1.discourse-cdn.com/flex015/user_avatar/forum.ghost.org/daviddarnes/32/3533_2.png) [@DavidDarnes](https://forum.ghost.org/u/DavidDarnes)\
**Post date:** [May 22, 2020, 2:05pm UTC](https://forum.ghost.org/t/back-up-your-ghost-blog-with-rss-with-images/14572/3 "2020-05-22T14:05:30Z")

</div>

I’ve got an example of using the Content API in a similar fashion. It’s a [Netlify Build plugin](https://www.netlify.com/build/plugins-beta/) that retrieves all posts and pages, generates them as `.md` files with their HTML content and downloads all the locally uploaded images into an assets directory:

> **[GitHub - daviddarnes/netlify-plugin-ghost-markdown: Returns Ghost content as...](https://github.com/daviddarnes/netlify-plugin-ghost-markdown)**
>
> Returns Ghost content as markdown files for static site generators like Jekyll to consume. - GitHub - daviddarnes/netlify-plugin-ghost-markdown: Returns Ghost content as markdown files for static s...

This uses the [JavaScript Client](https://ghost.org/docs/api/v3/javascript/content/), but I’m guessing python would be a bit speedier with the Content API 😅
