Welcome guys for a intensive programming week! We have to develop a desktop app interfacing with Youtube. You can find the video presentation at the following link: https://youtu.be/AqRh3hZBHRk
#Before starting
First of all, install all softwares you need to work. Minimum requirements are:
- an IDE (eclipse, IntelliJ IDEA, netBeans)
- Git (surprising isn't it ?)
- JUnit4 (Who will make tests?)
- SceneBuilder if we choose javaFX (We have choosen JavaFX :D)
- The build manager maven(useful for dependancies)
- FFmpeg
Ok, here we are! Be sure you can clone the repo (use SSH keys to be faster).
#Config the ID clients OAuth 2.0 is stored in src/main/resources/secrets.json
{
"installed": {
"client_id": "XXXXX",
"client_secret": "XXXXX"
}
}
The API key is stored in src/main/resources/youtube.properties
youtube.apikey=XXXXX
To download some videos FFmpeg is required. Please make sure FFmpeg is installed and added to your PATH variable.
#Dependancies
for more details, check the pom.xml !
- Youtube API Client Library for Java, communication with the Youtube API
- javaFX, building of modern user interfaces in java 8
- [FFmpeg] (https://ffmpeg.org/), a powerfull media manipulation tool
#Install
We used maven to build the JAR file. execute this command to build it:
mvn package
It will generate the Martynique.jar into the target/ directory.
java -jar target/Martynique.jar
Have fun!
@Mcdostone: Project manager
@MartyEz: Crazy coder
@Answermouth: User Interface Developer and test developper
@Minous: User Interface Developer and test developper
- Searching a video using the Youtube API
- Watching a video hosted on Youtube
- Getting the list of videos depending on a user query
- Controlling the video player (play, pause, volume, fullscreen ...)
- Watching an offline video
- Saving favorites videos
- Creating a playlist
- Improving user experience thanks to advanced thumbnails
- Suggesting videos the user depending on its criteria
- Making navigation more easier for the user
- Authentificating the user on Youtube
- Commenting or liking a video
- Displaying more information about a video (comments, description)
- unit tests
https://trello.com/b/R2oF29tT/planning-initial
https://trello.com/b/BS6gIe2i/pcd-martynique
- Online viewing
- Offline viewing
- Download videos
- Search
- Favorite videos
- Playlists
- Settings in home
- Possibility to choose location of database and downloaded files
- Suggest a curated video depending on certain criterias
You can find them in /doc/class_diagrammes
You can find the unit tests in the test package.
- Jfoenix, implementation of Google Material Design using Java components.
- Example of JavaFX app
- [Color specifications of Youtube] (https://www.youtube.com/yt/brand/color.html)
#authors
@MartyEz, Lucas MARTINEZ
@Answermouth, Ansel GAMET
@Minious, Eliot GODARD
@Mcdostone, Yann PRONOs