pm,
Important Information
You do NOT need a YouTube/Google account to complete and achieve a high mark for this
assignment. You will only be required to read YouTube video data from a file.
You can do this assignment in pairs. You must let me know who you are pairing with and only one
submission is required.
The assignment is worth 40% of the overall topic mark. The 40% is broken down into three phases
as discussed below.
Specification
The assignment is to design, implement, test, and document a command line application to analyse
the results of a YouTube search using the YouTube Data API: e.g. "Trending Topics" of YouTube
videos.
YouTube is a global video-sharing website headquartered in San Bruno, California, United States. The
site allows users to upload, view, rate, share, and comment on videos. Available content includes
video clips, TV clips, music videos, movie trailers, and other content such as video blogging, short
original videos, and educational videos. User can also add a title and description to the videos and
by examining the contents of and detecting which words appear frequently across titles and
descriptions we can detect "trending topics." See below for more information on YouTube and the
YouTube Data API that generate the list of videos used in this assignment:
YouTube: https://www.youtube.com/yt/about/en-GB/
Wikipedia on Youtube: https://en.wikipedia.org/wiki/YouTube
YouTube Data API: https://developers.google.com/youtube/v3/getting-started
YouTube Data API for listing videos: https://developers.google.com/youtube/v3/docs/videos/list
It is your job to develop a command line application that can detect the YouTube Trending Topics./nAssignment Phases Overview
The assignment is broken down into three phases:
1. Parse a YouTube video data string in into a YouTube video object
[40% ]
2. Sort Video objects by different features (e.g. title, channel title, views, date, etc.) [20%]
3. Index the list of videos for word usage, aka "Trending Topics"
[20%]
You must also submit a document that describes what you have done, how it relates to the theory
sections of the topic and any extra features that you have built for your application. You will also
include the final revision number for your code in the repository. This document will be submitted
via Canvas.
4. Application description document
[20%]
At each phase you should extend at the command line interface to display the results of your
improvement and allow the user to interact with the underlying data structures and algorithms.
Each phase will have marks allocated as follows:
• 70% Correctness
• 15% In Code Documentation
• 15% Demonstration and Testing Code
Your submission will be the contents of your repository directory for the assignment and
a PDF of your Application Description document submitted via Canvas
In Code Documentation
Your code should be documented. That is, it should contain Javadoc comments that describe
methods, classes, instance and class variables, etc., which you have written.
Use Javadoc (see http://docs.oracle.com/javase/8/docs/technotes/guides/javadoc/index.html)./nPhase 1 Detailed Description [up to 40%]
The goal of phase 1 is to parse a YouTube data string in into a video object. You will need to at least:
• Create a Java class called YouTube video to represent the contents of a video (minimum
of):
o channelld, channelTitle, publishedAt (date), title, description, viewCount
• Create a Java class called YouTube DataParser that can take a file name and extract a list
of videos from the given JSON file
• Create a Java class called YouTube DataParserException that extends Exception to
indicate a parsing error. The YouTube DataParser should throw this exception when it
encounters an error during the parsing of a JSON file (e.g. the file not found, malformed
JSON file)
• Document the code using Javadoc.
Phase 2 Detailed Description [up to 20%]
Phase 2 is to sort Videos by different features of your newly created YouTubeVideo object (e.g.
Channel, Date, etc.). You will need to at least be able to sort videos based on
the channel title,
the published at date,
the number of views,
•
• something to do with the description of the video (e.g. its length).
You can use the static methods of the utility class Collections to sort your videos. Add Javadoc to
your code to document the added functionality.
Phase 3 Detailed Description [up to 20%]
The task of phase 3 is to implement a trending topic analyser for the list of videos. This amounts to
indexing the word usage across the title and description of the videos. A simple way to do this is to
count the number of times a single word appears in the list of videos. Figure 1 lists a pseudo code
example for indexing the words used in videos.
SomeCollection words (this could be a set, list, map, etc)
for each ideo