A YouTube client app that shows videos from only user's subscriptions. The app enables the user to watch YouTube videos without distractions such as recommendations, comments, etc. that can lead into a deep rabbit hole. All data is stored locally, no back-end is involved.
After necessary permission (Contacts) is granted, the app fetches only last 7
days' videos for each channel in the user's subscription list. The user can navigate different
sections of the app via a navigation bar in the left.
Synchronization is allowed after 3 hours from the last synchronization.
Older videos are deleted during the synchronization. However, the user can save
videos to prevent them being deleted during the synchronization (refer to above screenshot).
All stored data can be deleted via delete button on the right top corner of the screen.
To further customize the app:
- Download or clone this repository.
- Change the package name (ApplicationId) of the project.
- Make a new Google oAuth credentials for the app to fetch YouTube data. Link to the guide page.
- Build and test the project.
-
JetPack
-
Others
- Kotlin Coroutines - for asynchronous operations.
- Dagger2 - for dependency injection.
- Glide - for image loading.
- YouTubeDataV3 APIs - for fetching user YouTube subscription list.
- Android YouTube Player - for playing YouTube videos.
- Easy Permissions - for permission handling.