Självständigt​​Arbete​​På​​Grundnivå

Självständigt​​Arbete​​På​​Grundnivå

Självständigt arbete på grundnivå ​ ​ ​ ​ ​ ​ Independent degree project - first cycle ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ Datateknik Computer Engineering ​ ​ Podcast aggregation system ​ ​ ​ ​ - with cross platform synchronization using Dropbox API ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ Erik Ström ​ ​ Mittuniversitetet DT133G, Final project, 15 credits 2017-09-24 ​ ​ ​ ​ ​ ​ ​ ​ DSV Östersund Podcast Aggregation System ​ ​ ​ ​ ​ ​ Erik Ström ​ ​ MID SWEDEN UNIVERSITY ​ ​ ​ ​ Avdelningen för data och systemvetenskap ​ ​ ​ ​ ​ ​ ​ ​ Examiner Felix Dobslaw [email protected] ​ ​ Supervisor Pär-Ove Forss [email protected] ​ ​ Author Erik Ström [email protected] ​ ​ Degree Programme Programvaruteknik 180 credits ​ ​ ​ ​ Main Field of Study Software development ​ ​ ​ ​ ​ ​ ​ ​ Semester, year VT, 2017 ​ ​ ​ ​ 1 Mittuniversitetet DT133G, Final project, 15 credits 2017-09-24 ​ ​ ​ ​ ​ ​ ​ ​ DSV Östersund Podcast Aggregation System ​ ​ ​ ​ ​ ​ Erik Ström ​ ​ Abstract The purpose of this study was to construct an alternative solution to proprietary and licensed products ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ used in the aggregation of podcast information and playback of related audio content. The primary ​ ​ ​ ​ ​ ​​ ​ ​​ ​ ​​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ feature of this solution was to offer its users cross platform synchronization of relevant information ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ such as episodic progression and tracking as well as subscriptions in regards to podcasting channels. An ​ ​ ​ ​​ ​ ​ ​ ​​ ​ ​​ ​ ​ ​ ​ ​ ​ ​ ​​ ​ ​​ ​ ​ ​ ​ ​ ​​ ​ ​​ ​ ​ ​ application providing podcatching capabilities was developed and its features determined through the ​ ​ ​ ​​ ​ ​​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ process of comparing similar existing solutions. Based on this comparison a Quality Assurance Model ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​​ ​ ​ ​ ​ (QAM) was created and used as a tool of measuring podcatching capabilities of any media playing ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​​ ​ ​​ ​ ​ ​ ​ ​ ​ ​ ​ software, including the very solution resulting from this study. Questions such as how to find and ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​​ ​ ​ ​ ​ ​ ​ subscribe to podcast channels was answered through the analysis of syndication feeds, exposing their ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​​ ​ ​ ​ ​ ​ ​ ​ structure and how its contents may not only be read but also stored to best accomodate requirements ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ deemed to be necessary. The resulting application was subsequently determined, by QAM, to fulfill its ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​​ ​ ​ ​ ​ ​ ​ ​ main objective of cross platform synchronization. Though, in the end , the application failed to offer ​ ​ ​ ​ ​ ​​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ enough supporting functionality to be considered as a sufficiently featured podcatching client and thus ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​​ ​ ​ ​ ​ ​ ​ an adequate alternative to existing products. ​ ​​ ​ ​ ​ ​ ​ ​ ​ ​ ​ Keywords: Aggregation, Podcast, Synchronization, Progression, Tracking, Subscription, Podcatching, ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ Quality Assurance Model, Syndication feeds ​ ​ ​ ​ ​ ​ ​ ​ 2 Mittuniversitetet DT133G, Final project, 15 credits 2017-09-24 ​ ​ ​ ​ ​ ​ ​ ​ DSV Östersund Podcast Aggregation System ​ ​ ​ ​ ​ ​ Erik Ström ​ ​ Table of Contents ​ ​ ​ ​ Terminology 6 Acronyms / Abbreviations 6 ​ ​ ​ ​ 1 Introduction 7 ​ ​ 1.1 Background and Problem Motivation 7 ​ ​ ​ ​ ​ ​ ​ ​ 1.2 Overall Aim 7 ​ ​ ​ ​ 1.3 Scope 8 ​ ​ 1.4 Detailed Problem Statement 9 ​ ​ ​ ​ ​ ​ 1.5 Outline 10 ​ ​ 1.6 Contributions 10 ​ ​ 2 Theory 11 ​ ​ 2.1 Podcasts and Podcatchers 11 ​ ​ ​ ​ ​ ​ 2.2 Features of Importance 12 ​ ​ ​ ​ ​ ​ 2.3 Syndication of Web Feeds 14 ​ ​ ​ ​ ​ ​ ​ ​ 2.4 Synchronization 16 ​ ​ 2.5 Java Technologies 17 ​ ​ ​ ​ 2.5.1 Frameworks for Creating Graphical User Interfaces 17 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ 2.5.2 Working with XML 18 ​ ​ ​ ​ ​ ​ 2.6 Platform Independence 18 ​ ​ ​ ​ 2.7 Dropbox 19 ​ ​ 3 Methodology 20 ​ ​ 3.1 Procedures for Analysis 20 ​ ​ ​ ​ ​ ​ 3.2 Procedures for Implementation 22 ​ ​ ​ ​ ​ ​ 4 Analysis 23 ​ ​ 4.1 Comparison of Podcast Client Software 23 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ 4.2 Design of Quality Assurance Model 26 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ 4.3 Application Requirements 28 ​ ​ ​ ​ 4.3.1 Functionality and Appearance Requirements 29 ​ ​ ​ ​ ​ ​ ​ ​ 4.3.2 Data Files and Synchronization Requirements 30 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ 4.4 Tools Selection 31 ​ ​ ​ ​ 4.4.1 Tools Regarding Syndication Feeds 31 ​ ​ ​ ​ ​ ​ ​ ​ 4.4.2 Tools Regarding OPML Documents 31 ​ ​ ​ ​ ​ ​ ​ ​ 5 Implementation 32 ​ ​ 5.1 Working With OPML Documents Using StAX 32 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ 3 Mittuniversitetet DT133G, Final project, 15 credits 2017-09-24 ​ ​ ​ ​ ​ ​ ​ ​ DSV Östersund Podcast Aggregation System ​ ​ ​ ​ ​ ​ Erik Ström ​ ​ 5.2 Parsing RSS 2.0 Feeds Using ROME 33 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ 5.3 Streaming and Downloading Episodes 34 ​ ​ ​ ​ ​ ​ ​ ​ 5.4 Progression and Tracking Information 34 ​ ​ ​ ​ ​ ​ ​ ​ 5.5 Synchronization using Dropbox API v.2 35 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ 5.6 JavaFX Components 37 ​ ​ ​ ​ 6 Results 38 ​ ​ 6.1 GUI 39 ​ ​ 6.1.1 Channels List 40 ​ ​ ​ ​ 6.1.2 Channel Information 40 ​ ​ ​ ​ 6.1.3 Episodes 41 ​ ​ 6.1.4 Media Player 42 ​ ​ ​ ​ 6.2 Features and QAM Score 43 ​ ​ ​ ​ ​ ​ ​ ​ 7 Discussion 45 ​ ​ 7.1 Compliance to Application Requirements 45 ​ ​ ​ ​ ​ ​ ​ ​ 7.2 Fulfillment of Problem Statements 46 ​ ​ ​ ​ ​ ​ ​ ​ 7.2.1 Main Problem Statements 46 ​ ​ ​ ​ ​ ​ 7.2.2 Supporting Problem Statements 46 ​ ​ ​ ​ ​ ​ 7.3 Conclusions 47 ​ ​ 7.4 Supplements and Additions 47 ​ ​ ​ ​ ​ ​ 7.5 Ethical Considerations 48 ​ ​ ​ ​ References 49 Appendix A: Feature Source Material 51 ​ ​ ​ ​ ​ ​ ​ ​ PodcatcherMatrix 51 Podcast Client Feature Comparison Matrix 52 ​ ​ ​ ​ ​ ​ ​ ​ Appendix B: OPML & StAX 54 ​ ​ ​ ​ ​ ​ ​ ​ Parsing OPML Documents 54 ​ ​ ​ ​ Building OPML Documents 55 ​ ​ ​ ​ Appendix C: Parsing RSS 2.0 Feeds 56 ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ Appendix D: DownloadTask 58 ​ ​ ​ ​ Appendix E: DropboxManager 59 ​ ​ ​ ​ Appendix F: Project Files 61 ​ ​ ​ ​ ​ ​ 4 Mittuniversitetet DT133G, Final project, 15 credits 2017-09-24 ​ ​ ​ ​ ​ ​ ​ ​ DSV Östersund Podcast Aggregation System ​ ​ ​ ​ ​ ​ Erik Ström ​ ​ Terminology Acronyms / Abbreviations ​ ​ ​ ​ API Application Programming Interface ​ ​ ​ ​ DOM Document Object Model ​ ​ ​ ​ GUI Graphical User Interface ​ ​ ​ ​ IETF The Internet Engineering Task Force ​ ​ ​ ​ ​ ​ ​ ​ JAXB Java Architecture for XML Binding ​ ​ ​ ​ ​ ​ ​ ​ JDK Java Development Kit ​ ​ ​ ​ JVM Java Virtual Machine ​ ​ ​ ​ OPML Outline Processor Markup Language ​ ​ ​ ​ ​ ​ QAI Quality Assurance Index ​ ​ ​ ​ QAM Quality Assurance Model ​ ​ ​ ​ QAV Quality Assurance Value ​ ​ ​ ​ RSS Rich Site Summary (or Really Simple Syndication) ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ SDK Software Development Kit ​ ​ ​ ​ SAX Simple API for XML ​ ​ ​ ​ ​ ​ StAX Streaming API for XML ​ ​ ​ ​ ​ ​ UI User Interface ​ ​ XML eXtensible Markup Language ​ ​ ​ ​ 5 Mittuniversitetet DT133G, Final project, 15 credits 2017-09-24 ​ ​ ​ ​ ​ ​ ​ ​ DSV Östersund Podcast Aggregation System ​ ​ ​ ​ ​ ​ Erik Ström ​ ​ 1 Introduction 1.1 Background and Problem Motivation ​ ​ ​ ​ ​ ​ Podcasts has in a short period of time become one of the most popular mediums of delivering both ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ entertainment and news. It’s free and easily obtainable on all main platforms through various means of ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ distribution, most of which offering a wide selection of podcasting channels of different topics and ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ categories. The typical consumer of podcasts has access to multiple devices, each used for specific ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ purposes, and most of them supports the neccessary capabilities of playing media files associated with ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ podcasts. If a user, having progressed halfway through an episode on a certain device, later wishes to ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ continue its playback, but now on a different device, there are but a few approaches to make this ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ possible. The user could either do this manually by remembering the playback position on the first ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ device and simply skipping the corresponding content on the second device, or he could use some kind ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ of service through which the two devices may communicate and exchange such information. This latter ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ alternative utilizes some kind of data synchronization in order to achieve needed conformation of ​ ​ ​ ​ ​ ​ ​ ​ ​ ​​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ progressional data, and in the event these two devices run on different platforms such services would ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ offer cross platform synchronization. ​ ​​ ​ ​ ​ ​ ​ While there are no shortage of podcast aggregation software specifik to certain platforms, there ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​​ ​ doesn’t seem to exist as wide selection of those offering cross platform synchronization. Those that do ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ ​ often

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    61 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us