![Page 1: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/1.jpg)
tizen.org1
Podcasts on mobilegPodder and the gpodder.net web service
Thomas Perlhttp://thp.io/
![Page 2: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/2.jpg)
tizen.org2
Overview
▪gpodder.net web service API Client libraries Supported clients Feed Service▪gPodder mobile application QML UI▪gPodder HTML5 UI
![Page 3: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/3.jpg)
gpodder.net web service
![Page 4: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/4.jpg)
tizen.org4
Web Service
▪ Initial idea: Accumulate a list of example podcasts
▪ Side effects: Subscription list backup and sharing
▪ Initial implementation: CGI script, plain OPML files
▪ Overhauled in 2009: Django-based web service
▪ 78.366 podcasts, ~ 8.5M episodes, ~ 28.000 users
▪ Python, Django, CouchDB
▪ Open source (GNU Affero GPL v3): https://github.com/gpodder/mygpo
https://gpodder.net/
![Page 5: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/5.jpg)
tizen.org5
Web Service – API (1/3)
▪REST-based API, 3 “levels”: Simple: Quick to integrate, stateless client Advanced: More feature, stateful client Public: Podcast directory, toplist, ...▪Various request/response formats OPML, JSON, JSONP, plain text, XML
http://wiki.gpodder.org/wiki/Web_Services/API_2
![Page 6: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/6.jpg)
tizen.org6
Web Service – API (2/3)
▪Advanced API Features Subscription management Episode actions (playback position, status, …) Devices (sync between devices) Server-stored shared settings and preferences Favorite episodes Podcast lists (like “Podcasts to learn Japanese”)
![Page 7: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/7.jpg)
tizen.org7
Web Service – API (3/3)
▪Public API Features List of tags and categories Podcasts from tags and categories User-created podcast lists Toplists (Most subscribed, most listened, ...) Episode metadata
![Page 8: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/8.jpg)
tizen.org8
Web Service – Client libraries
▪python-mygpoclient Reference implementation Pure Python library Used in the official gPodder client▪ libmygpo-qt C++/Qt library Used in Amarok and N9 Podcasts app
![Page 9: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/9.jpg)
tizen.org9
Web Service – Supported clients
▪gPodder (Desktop, Maemo, MeeGo)▪Amarok, Clementine (Desktop)▪Other platforms Android: gpodroid, Podax WP7: WPodder webOS: drPodder (via patch) Symbian: Podcatcher, Podmaster
http://wiki.gpodder.org/wiki/Web_Services/Clients
![Page 10: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/10.jpg)
tizen.org10
gpodder.net Feed Service
http://mygpo-feedservice.appspot.com/
▪RSS parsing and error correction▪For low-powered clients, JSON result
![Page 11: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/11.jpg)
gPodder mobile application
![Page 12: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/12.jpg)
tizen.org12
Mobile Application
▪Started in 2005 as a Linux Desktop application Written in Python / PyGTK
2008: Ported to “Internet Tablets” (N800) 2009: Ported to Maemo 5, smartphone OS (N900) Meanwhile: CLI, Web UI, Windows/OS X port 2011: New UI for MeeGo Harmattan (N9/N950)
PySide-based QML UI (Qt Quick)
![Page 13: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/13.jpg)
tizen.org13
Ohloh.net code statistics
N800 port (v0.11.2)
Maemo 5 (N900) UI (v2.0)QML UI (v3.0)
Web UI
https://www.ohloh.net/p/gpodder
![Page 14: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/14.jpg)
tizen.org14
Mobile Application – QML UI
![Page 15: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/15.jpg)
gPodder HTML5 UI
![Page 16: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/16.jpg)
tizen.org16
HTML5 UI
▪Evolution of gPodder's Web UI▪Embedded server runs gPodder, serves JSON+HTML▪Playback, downloading, etc. on the server (daemon)▪User controls the application through the HTML UI▪Fully-featured gPodder Python application▪Requires native development kit for the server
![Page 17: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/17.jpg)
tizen.org17
HTML5 UI – ArchitectureNative process
Python interpreter
gpodder.webui
Static content
JSON service
Web browser or WebView
HTTP
gPodder Core
DL / Playback
User interface(podcast / episode lists,
add new podcast,playback and
download status, etc...)
Optional: HTML5media streaming
![Page 18: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/18.jpg)
Demo
![Page 19: Podcasts on mobile - Tizen...2012/05/09 · 2 tizen.org Overview gpodder.net web service API Client libraries Supported clients Feed Service gPodder mobile application QML UI gPodder](https://reader034.vdocument.in/reader034/viewer/2022050612/5fb31d6b5d8b4516731f0118/html5/thumbnails/19.jpg)
Q & AgPodder application: http://gpodder.org/
Web service: http://gpodder.net/
Thomas Perl <thp.io/about>