7월 1일 자로 구글 리더 서비스가 종료된다[1]. 올해 초에 공지했는데도 막상 일주일 앞으로 다가오니 아쉬움이 남는다. 구독 피드를 백업해서 다른 서비스[2]로 이주하는 방법을 안내해주는 글은 많은데 정작 콘텐츠 백업 방법을 이야기해주는 경우는 별로 없었다. 구독하던 블로그 사이트가 중단되어 현재는 피드가 유효하지 않더라도 구글 리더 서버에는 기존 콘텐츠가 남아 있다. 이 글은 이 콘텐츠를 백업하는 방법에 대해서 다룬다.[각주:1]

1. 구독 피드 정보 얻기

구글에 로그인한 상태로 http://www.google.com/reader/api/0/subscription/list에 접속하여 구독 피드 정보가 담긴 XML을 얻을 수 있다. 이 XML에서 원하는 사이트의 피드 주소를 얻어야 한다. 아래는 http://blog.sbnet21.com/rss가 피드 주소가 된다.

<object>
	<string name="id">feed/http://blog.sbnet21.com/rss</string>
	<string name="title">한순보 - ★조나단봉네 블로그★</string>
	<list name="categories">
...

2. 콘텐츠 얻어오기

위에서 얻은 피드 주소를 가지고 구글 서버에 저장된 콘텐츠를 가져오기 위해서는 아래 주소에 접속한다. 파라메터로 쓰인 n=100은 최대 100개를 가져오라는 의미이다. 한 번에 허용하는 최대 글(entry)의 개수, 즉 n의 최대값은 1000이다. (그 이상의 숫자는 의미가 없음)

# http://www.google.com/reader/atom/feed/[피드URL]?n=[받을 글의 개수]
http://www.google.com/reader/atom/feed/http://blog.sbnet21.com/rss?n=100

3. n이 넘는 개수의 콘텐츠 얻어오기

그렇다면 위에서 명시한 n을 넘는 개수의 글은 어떻게 가져올까? 그러한 글이 있으면 데이터 XML 상단에 <gr:continuation> 엘리먼트가 존재한다.

<gr:continuation>CMOM85vq07MC</gr:continuation>

이 엘리먼트의 값을 요청 페이지에 c의 값으로 파라메터에 추가하면 된다.

# http://www.google.com/reader/atom/feed/[피드URL]?n=100
http://www.google.com/reader/atom/feed/http://blog.sbnet21.com/rss?n=100&c=CMOM85vq07MC

4. 정리

일반적으로 블로그가 현재도 안정적으로 운영되고 있다면 굳이 리더 서버에 남겨진 콘텐츠를 수고스럽게 백업할 필요가 없다. 하지만 해당 블로그가 폐쇄되었다든지 해서 자료를 백업할 필요가 있는 경우 유용하다. 백업할 경우에는 위의 n을 1000으로 하고, <gr:continuation> 엘리먼트가 있는 경우 추가로 백업을 받으면 된다. 혹시 현재 XML에 몇 건의 데이터가 있는지 알아보려면 '<entry'가 몇 번 나오는지 브라우저의 검색 기능을 사용해보면 된다.

[1] http://googlereader.blogspot.kr/2013/03/powering-down-google-reader.html
[2] http://www.feedly.com

  1. 미리 말해두지만, 구글 서버가 해당 사이트의 모든 콘텐츠를 가지고 있다는 보장은 하지 못한다. 즉, 그 사이트의 1번 글을 가지고 있다는 보장을 하지 않는다는 말이다. [본문으로]
,