5 This page describes the documents that are used in the CouchDB based backend of
6 the gpodder.net webservice.
11 A registered (but probably not yet activated) user and all his devices.
17 email: "stefan@gpodder.net",,
18 password: "asdf$asdfasdf$asdfsdfa",
20 registration_key: "ad18719239817389ad",
24 "_id": "872348923987492834",
34 ["872348923987492834", "3498503485093495"],
35 ["9384053405", "90548903458"]
44 If a Podcast does not belong to a group, it is a document on its own. The
45 "subscriber" field contains historical subscriber counts. The "tags" field
46 contains all tags that are fetched in some automated way (ie not entered by a
49 A Podcast contains recent subscriber data in the "subscribers" property. To
50 keep the Podcast objects small, subscriber data is periodically moved to the
51 podcast's PodcastSubscriberData object.
57 _id: "118913287192379173298"
59 feed_url: "http://podcast.com/mp3.xml",
61 subscribers: [{timestamp: "2010-09-01", subscriber_count: 120}, ... },
62 related_podcasts: ["34059384598304850", "23480128409230482"],
64 feed: [["technology", 50], ["news", 20]],
65 delicious: [["technews", 10]]
67 publishers: ["stefan"],
71 19384038450938450983: { Episode },
72 20928340283040234820. { Episode },
74 content_types: ["image", "audio"]
81 Represents a group of podcast and contains all podcasts assigned to it.
82 Once a Podcast is assigned to a group, its Podcast document in deleted
83 and moved into the PodcastGroup.
88 _id: "9238409283402830480",
93 id: "118913287192379173298",
95 group: "9238409283402830480", # the _id of the group for
96 # referring to it when the the
97 # podcast is referred to separately
98 group_member_name: "MP3", # required if Podcast is member of a group
99 feed_url: "http://podcast.com/mp3.xml",
101 subscribers: [[2010-09-01, 120], [2010-09-01, 130]],
102 related_podcasts: ["34059384598304850", "23480128409230482"],
103 tags: ["technology", "news"],
104 publishers: ["stefan"],
105 episodes: Episode-Dict
113 PodcastSubscriberData
114 ---------------------
116 Contains the older subscriber data for a Podcast. This can be used to retrieve
117 changes in the number of subscribers of a podcast.
122 podcast: "118913287192379173298",
124 {timestamp: "2010-09-01", subscriber_count: 120},
125 {timestamp: "2010-10-01", subscriber_count: 125},
126 {timestamp: "2010-11-01", subscriber_count: 210},
134 An episode, in concept, belongs to a Podcast (not a PodcastGroup) but is a
135 standalone document. It has optional support for multiple media files (eg Audio
136 and PDF Show Notes). The fields listeners and recent_listeners are
137 regularly updated with aggregated data to substitute queries based on time.
142 _id: "19384038450938450983",
143 title: "Cool Episode of Cool Podcast",
144 podcast: "118913287192379173298",
145 media_urls: ["http://podcast.com/episode1.mp3", "http://podcast.com/episode1.pdf"],
146 released: "2010-09-20 12:00",
147 tags: ["opensource", "technology"],
148 merged_ids: ["908345083045", "29380423849"],
149 media_types: ["audio"],
150 listeners: [["2010-09-20", 20], ["2010-09-21", 15]],
151 recent_listeners: 75,
159 Contains everything that a User has done with a Podcast. The podcast is
160 referenced by the "ref_url" which is the URL that was received via the API. It
161 can be used in API responses so that the user receives exactly the same URL he
162 has sent (the Podcast document could contain several URLs).
167 _id: "3893745983453948589345",
168 user: "345983045035480345809",
170 podcast: "118913287192379173298",
171 ref_url: "http://example.com/podcast.xml",
175 action: "subscribed",
176 timestamp: "2010-09-10",
177 device: "872348923987492834"
180 action: "unsubscribed",
181 timestamp: "2010-09-15",
182 device: "872348923987492834"
193 Contains the Podcast Suggestions and related meta-data (blacklist,
194 suggestion-ratings) of a User. This is not places into PodcastUserState
195 because the user did not yet interact with the Podcast directly.
202 "119018023981293801823",
203 "192840890284092834093"
206 "456045698409586045860",
207 "935937498573549739485"
210 { timestamp: "2010-09-13", rating: -1},
211 { timestamp: "2010-09-15", rating: 1}
219 A EpisodeUserState contains everything that a User has done with an Episode.
220 The episode is referenced by the "ref_url" and "podcast_ref_url" which contain
221 the URLs for the episode and the podcast, exactly as they have been received
222 via the API. These values can also be used in API responses to refer to exactly
223 the same URL as in the request (both Episode and Podcast documents can contain
229 episode: "3893745983453948589345",
230 podcast: "118913287192379173298",
231 ref_url: "http://podcast.com/episode-1.mp3",
232 podcast_ref_url: "http://podcast.com/mp3.xml",
237 file: "http://podcast.com/episode-1.mp3",
238 timestamp: "2010-09-10",
239 device: "872348923987492834"
243 file: "http://podcast.com/episode-1.mp3",
244 timestamp: "2010-09-15",
245 device: "872348923987492834"
252 advertisement: false,
263 Contains an advertisement for a Podcast
269 podcast: "118913287192379173298",
278 Represents a category within the Podcast Directory.
284 spellings: ["technology", "tech"],
286 updated: "2010-09-28T08:38:03Z",