Yet Another Video Player (or YAVP) is a Video Player for Android that is based on Googles ExoPlayer.

Overview

Yet Another Video Player

Yet Another Video Player (or YAVP) is a Video Player for Android that is based on Googles ExoPlayer.


Who Is YAVP For?

First off, YAVP is not meant to compete with any of the big players like VLC or MX Player.

With that out of the way, here are some reasons you might want to consider using YAVP:

  • YAVP is fully Open Source
    • The source code of YAVP and all libraries is open source and can be found here
  • YAVP will (and cannot) spy on your data
    • Take a look here to see what permissions YAVP uses
  • YAVP is completely free and without ads
  • YAVP does not include any Trackers
  • YAVP now has a media picker
  • YAVP will play most Video and Audio Files and Streams
    • For a full list of supported formats, see here
  • Simple and modern User Interface
    • No flashy lights and thousands of buttons, just a simple user interface
  • Resume where I left Features
    • You can just close the app at any point - it will handle resuming for you later
  • Build and Optimized for watching Anime
    • For Anime- Specific features, see here

Things you should Know

  • YAVP requires at least Android 7.0 (Nougat)
    • This may change in the future
  • While Anime4K really is great at making Anime look great, it is also outstandingly eager to drain your battery
    • When Anime4K is enabled, you will experience a much higher battery drain
    • To slow down battery drain, you can enable FPS limiting in the app Settings
    • But don't worry, YAVP will warn you when your battery is running out of charge (if enabled)
  • YAVP is my very first Android App and my first (public) project on Github
    • If I'm doing something wrong, please feel free to let me know :)

Anime Specific Features

I personally use YAVP to watch Anime. As a result of this, it has some features specifically built with Anime in mind.

  • Anime- Upscaling with Anime4K
    • Watch Anime like it was meant to be watched: in the highest possible quality
  • Skip Anime Openings with the click of a button
    • Skip that super annoying opening with YAVP's advanced seeking technology
  • More to come

FAQ

How Do I Play Videos using YAVP?

Simply open YAVP and select a video from the media browser. Additionally, you can also open a video file in another app (eg. the Gallery app) and Android will ask you what video player to use. Simply select YAVP and your video will start playing. In addition to this, you can also share the video with YAVP. In the Share menu, there will be a entry called Play with YAVP.

A App Forces Me To Use VLC For Videos

Take a look at NotVLC.

How Do I Use Swipe Gestures?

For Volume Control, swipe the right side of your screen Vertically.
For Brightness Control, swipe the left side of your screen Vertically.

How Do I Choose The Quality / Jump To A Position / Access The Settings?

All these functions can be accessed in the quick settings drawer.
To open the quick settings drawer, swipe from the right edge of the screen to the left. Make sure the play/pause button is visible when you do this.

How Do I Enable Anime4K?

Anime4K can be enabled in the effects drawer.
To open the effects drawer, swipe from the left edge of the screen to the right. Make sure the play/pause button is visible when you do this.

Will YAVP Stay Ad- Free?

99% Yes. Although Exoplayer supports adding Ads into Videos, I don't feel like this is something I'd like to do.

Does YAVP Use Trackers?

Nope.

How does YAVP Scale up Anime?

When enabled in the Quick Settings menu, YAVP will use bloc97's Anime4K for upscaling and enhancing Anime. This algorithm does, in a nutshell, look where there are Lines in the Video and makes the Lines appear sharper.
If you want to learn more on how Anime4K works, I suggest looking at bloc97's Preprint.

Why Only Anime4K 0.9?

Because this version of Anime4K is still quite simple to understand and implement.
Additionally, I'm not sure if a mobile GPU could handle any of the newer versions.

What Permissions Does YAVP Use?

Obviously, YAVP cannot function without having any permissions.
These are all permissions that YAVP uses:

  • INTERNET
    • To access the Internet and stream videos
    • Also to check for and download updates
  • MODIFY_AUDIO_SETTINGS
    • To adjust the Volume with gestures
  • READ_EXTERNAL_STORAGE
    • To list and play local videos
    • This permission is actually disabled by default and is only requested when needed
  • WRITE_EXTERNAL_STORAGE
    • To download app updates
    • This permission is actually disabled by default and is only requested when needed
  • REQUEST_INSTALL_PACKAGES
    • This might sound scary, but it only means that YAVP is allowed to ask you to install new apps (a new screen will open for you to confirm the installation)
    • This is used to install app updates

As you can see, YAVP cannot access any of your private information (for example READ_CONTACTS).

Bugs And Feature Requests

Bugs

  • Include the App Version
    • If not on the latest App Version, try updating the app. The Issue may have already been solved
  • Include the crash details (select and copy the text on the crash screen)
  • Include steps to reproduce the Bug (if not obvious from the Description)
  • Include Screenshots (if needed)
  • If you suspect the Bug may be device specific, try reproducing on another device (if possible)
  • For large logs use pastebin.com or similar
  • Don't group unrelated requests into one issue

Feature Requests

  • Write a detailed request, explaining what the feature should do and how it should do it
  • Include Screenshots to illustrate your request (if needed)

Used Librarys

Comments
  • An unexpected error has occured and the app had to be closed

    An unexpected error has occured and the app had to be closed

    https://pastebin.com/S2gYUKfY Using yavp-release-973, opening app works without issues until I enable storage permissions. Then trying to open app shows this error.

    opened by naveenjohnsonv 9
  • Add to F-droid

    Add to F-droid

    Hi,

    Adding the app to F-droid would be very helpful for discoverability and the app wouldn't need to handle auto updates (and app installs) itself.

    Thanks

    opened by dcdom2 5
  • latest version adds non-free dependencies?

    latest version adds non-free dependencies?

    I just noticed your new release added two non-free (i.e. non FOSS) dependencies: GMS and Android Vision. Are those really needed? Special "headache" in this context is the CAMERA permission together with INTERNET. I thought this is a video player?

    Could you please explain what the CAMERA permission plus GMS are needed for by a video player? I'm a bit confused :wink: Also, abstention from non-FOSS components would be a good idea IMHO – they leave an otherwise good FOSS app "tainted".

    Thanks!

    PS: most likely an oversight, but the latest APK also comes with debugging enabled.

    opened by IzzySoft 4
  • Crashes on startup if packaged without internet permission.

    Crashes on startup if packaged without internet permission.

    Thanks for the app. When I try to repackage it without INTERNET permission (as a precaution and I only need it offline), it crashes on startup. It should still function offline. Most other apps handle absence of INTERNET and ACCESS_NETWORK_STATE gracefully.

    And thanks for the app, btw!

    opened by dcdom2 3
  • please disable auto scanning of media library in start of application by default

    please disable auto scanning of media library in start of application by default

    Hello thank you very much for this great application.

    When I start application on most of my devices it's legs a lot and freezes for several minutes and in one of devices (although ot was not that much powerless) it completely freezes even if i wait alot although i only had 32GB video files.

    so please disable auto scanning of media library in start of application as it makes the app completely unusable and let us to use folder browsing for playing videos.

    You can make enabling it optional in setting menu but please disable it as default.

    Thank you very much

    opened by Rustlang4Future 1
  • [Feature Request] Being able to choose the aspect ratio

    [Feature Request] Being able to choose the aspect ratio

    My phone has a tall screan (Oneplus 6t) and the content is very zoomed in, It would be great to choose if the video is stretched, zoomed in or cropped for black borders.

    opened by EliasGagnef 1
  • Android 10 Broken

    Android 10 Broken

    Launched app, gived permission, relaunched app, `Platform Info: Device: Xiaomi M2010J19CG (citrus_global) Board: citrus Type&Tags: user (release-keys) Android 10 SDK 29 (REL) ABIs: arm64-v8a, armeabi-v7a, armeabi,

    Stacktrace: java.lang.RuntimeException: setDataSource failed: status = 0x80000000 at android.media.MediaMetadataRetriever.setDataSource(Native Method) at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:75) at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:163) at de.shadow578.yetanothervideoplayer.ui.mediapicker.chooser.MediaChooserFragment.scanMedia(MediaChooserFragment.java:352) at de.shadow578.yetanothervideoplayer.ui.mediapicker.chooser.MediaChooserFragment.populateMediaList(MediaChooserFragment.java:278) at de.shadow578.yetanothervideoplayer.ui.mediapicker.chooser.MediaChooserFragment.initializeMediaEntries(MediaChooserFragment.java:249) at de.shadow578.yetanothervideoplayer.ui.mediapicker.chooser.MediaChooserFragment.onCreate(MediaChooserFragment.java:114) at androidx.fragment.app.Fragment.performCreate(Fragment.java:2684) at androidx.fragment.app.FragmentStateManager.create(FragmentStateManager.java:280) at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1175) at androidx.fragment.app.FragmentTransition.addToFirstInLastOut(FragmentTransition.java:1255) at androidx.fragment.app.FragmentTransition.calculateFragments(FragmentTransition.java:1138) at androidx.fragment.app.FragmentTransition.startTransitions(FragmentTransition.java:136) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1989) at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1947) at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:1849) at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:2629) at androidx.fragment.app.FragmentManager.dispatchActivityCreated(FragmentManager.java:2577) at androidx.fragment.app.FragmentController.dispatchActivityCreated(FragmentController.java:247) at androidx.fragment.app.FragmentActivity.onStart(FragmentActivity.java:541) at androidx.appcompat.app.AppCompatActivity.onStart(AppCompatActivity.java:201) at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1433) at android.app.Activity.performStart(Activity.java:7946) at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3346) at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221) at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2058) at android.os.Handler.dispatchMessage(Handler.java:107) at android.os.Looper.loop(Looper.java:226) at android.app.ActivityThread.main(ActivityThread.java:7592) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950) `Video player works if open video from any file explorer

    opened by GribanovIvan 0
  • Screenshots for F-Droid

    Screenshots for F-Droid

    You can add Screenshots for F-Droid, too, if you want.

    https://f-droid.org/en/docs/All_About_Descriptions_Graphics_and_Screenshots/

    https://gitlab.com/snippets/1895688

    opened by mondlicht-und-sterne 0
  • Not able to play Live Streaming m3u8 URL more than 40 seconds.

    Not able to play Live Streaming m3u8 URL more than 40 seconds.

    Hi, Thanks for this great app. I was trying to play live streaming url but getting following error. Please look into this matter.

    URL: https://aajtaklive-amd.akamaized.net//hls//live//2014416//aajtak//aajtaklive//aajtak_5//chunklist.m3u8

    Platform Info: Device: OnePlus GM1901 (OnePlus7) Board: msmnile Type&Tags: user (release-keys) Android 10 SDK 29 (REL) ABIs: arm64-v8a, armeabi-v7a, armeabi,

    Stacktrace: com.google.android.exoplayer2.ExoPlaybackException: com.google.android.exoplayer2.source.hls.playlist.HlsPlaylistTracker$PlaylistStuckException at com.google.android.exoplayer2.ExoPlayerImplInternal.handleMessage(ExoPlayerImplInternal.java:386) at android.os.Handler.dispatchMessage(Handler.java:103) at android.os.Looper.loop(Looper.java:214) at android.os.HandlerThread.run(HandlerThread.java:67) Caused by: com.google.android.exoplayer2.source.hls.playlist.HlsPlaylistTracker$PlaylistStuckException at com.google.android.exoplayer2.source.hls.playlist.DefaultHlsPlaylistTracker$MediaPlaylistBundle.processLoadedPlaylist(DefaultHlsPlaylistTracker.java:637) at com.google.android.exoplayer2.source.hls.playlist.DefaultHlsPlaylistTracker$MediaPlaylistBundle.onLoadCompleted(DefaultHlsPlaylistTracker.java:518) at com.google.android.exoplayer2.source.hls.playlist.DefaultHlsPlaylistTracker$MediaPlaylistBundle.onLoadCompleted(DefaultHlsPlaylistTracker.java:443) at com.google.android.exoplayer2.upstream.Loader$LoadTask.handleMessage(Loader.java:450) at android.os.Handler.dispatchMessage(Handler.java:107) ... 2 more

    opened by Shreyansh1995 0
  • Exoplayer Filters

    Exoplayer Filters

    This incorporates features such as:

    • GLSL Shaders (Anime4K)
    • App Splash Screen
    • App Crash Handler
    • "Resume where I left"
      • many small changes
    opened by shadow578 0
Releases(v1108)
  • v1108(Jul 4, 2020)

    This release of YAVP fixes various issues on different android versions and general bugs of the app.

    What's New?

    • Extended testing with all supported android versions, the app should now (hopefully) fully work on all supported versions (Issue #5 ; this requires further testing)
    • Changed buffering behaviour to decrease buffering times
    • Added ability to disable GL video effects (Anime4K) to lower battery drain
    • Can now dismiss the update dialog by touching outside the dialog (this froze the app before)
    • Check for INTERNET permissions instead of assuming they were granted (Issue #7)
    • Add build flavors for github and fdroid release targets (should now be ready for fdroid submission (Issue #8 ))
    • YAVP now uses the GNU GPLv3 (compatible with fdroid)
    • Updated Android Studio and SDK to latest version
    Source code(tar.gz)
    Source code(zip)
    yavp-1108-github-release.apk(3.49 MB)
  • v1003(Jun 1, 2020)

    🎤 Is this working? Anyway, this release fixes some issues with YAVP v973 and comes with some minor changes to the ui.

    What's New

    • by default, yavp will now scale videos to fit inside the given space (instead of cropping them to fit). the old behaviour can still be enabled in the settings. (Issue #6)
    • use the "buffering wheel" as a visual indicator of the current volume and brightness level, also fix some graphical glitches.
    • added better error handling for the media picker (this should resolve app crashes described in Issue #5, tho this needs some more testing)
    • reduced the time between update checks to 12 hours (instead of 43 seconds)
    • "resume playback" button on crash screen now actually works
    • added additional device info in crash reports
    • hopefully fix a issue where icons would randomly change color
    • hide hour display on videos that are less than a hour long
    Source code(tar.gz)
    Source code(zip)
    yavp-release-1003.apk(3.41 MB)
  • v973(May 24, 2020)

    This release finally adds a media chooser, so you can use YAVP without the need for a external app.

    Features

    • Introduced the Media Picker to make YAVP standalone
    • Added automatic app updates (i hope they work ;))
    • Tweaked app theme

    Under The Hood

    • Clean up layout xmls
    • Now using vector drawables from android studio
    • Updated dependencies
    Source code(tar.gz)
    Source code(zip)
    yavp-release-973.apk(3.41 MB)
  • v881(May 3, 2020)

  • v876(May 2, 2020)

    This release increases stability of the app while introducing new features. I also updated the UI. Changes include:

    Features

    • Double- Tap to seek
    • UI Updates
    • Skip Anime Opening
    • A lot less crashes (i hope)

    Under The Hood

    • Move playback to a dedicated service
    • Fix cache behaviour
    Source code(tar.gz)
    Source code(zip)
    yavp-release-876.apk(4.14 MB)
  • v628(Feb 22, 2020)

    First release of YAVP:

    • Streaming of Video and Audio
    • Volume and Brightness swipe controls
    • Anime4K shader support
    • Crash- Safe (= if it crashes, it saves your state)

    I hope this works, however there might be a warning when installing (I'm new to app dev...)

    Source code(tar.gz)
    Source code(zip)
    yavp_release_628.apk(3.15 MB)
Owner
null
Compose-video-player - Video player for Android Compose powered by ExoPlayer

Compose Video Player Video player for Android Compose powered by ExoPlayer. Addi

Juan Pablo Herrera 22 Dec 13, 2022
AutoPlayer - A player based on ExoPlayer for play video automatically in RecyclerView, when an item is visible.

A player based on ExoPlayer for play video automatically in RecyclerView, when an item is visible.

Kishan Singh 6 Aug 14, 2022
Video Transcoder is an application which uses the open source program FFmpeg to transcode video files from one format to another.

Video Transcoder Do you want to encode videos on your phone into different formats, trim videos, or extract audio? Are you looking for a free solution

Branden Archer 358 Dec 30, 2022
The androidx.media3 support libraries for media use cases, including ExoPlayer, an extensible media player for Android

AndroidX Media AndroidX Media is a collection of libraries for implementing media use cases on Android, including local playback (via ExoPlayer) and m

Android Jetpack 310 Dec 29, 2022
Android SRT player powered by Exoplayer and srtdroid

SrtPlayer An Android SRT test player powered by ExoPayer. Most of this code comes from YoussefHenna reply in the SRT support ExoPayer issue. It demons

Thibault Beyou 4 Sep 20, 2022
ExoPlayer - an application level media player for Android

ExoPlayer is an application level media player for Android. It provides an alternative to Android’s MediaPlayer API for playing audio and video both locally and over the Internet. ExoPlayer supports features not currently supported by Android’s MediaPlayer API, including DASH and SmoothStreaming adaptive playbacks.

Halil Özel 6 Oct 31, 2022
Fermata Media Player is a free, open source audio and video player with a simple and intuitive interface.

Fermata Media Player About Fermata Media Player is a free, open source audio and video player with a simple and intuitive interface. It is focused on

Andrey 227 Jan 6, 2023
Another local music player for Android built with Compose. Way too "local" so you likely won't need it.

AnotherAndroidLocalMusicPlayer Another local music player for Android built with Compose and media3 (ExoPlayer). Warning The app behaves strangly as i

oO0oO0oO0o0o00 0 Mar 13, 2022
Android podcast app made with Jetpack Compose and ExoPlayer.

Podcast App Android podcast app made with Jetpack Compose and ExoPlayer. Podcast information provided by Listen Notes API. Features Jetpack Compose UI

Fabian 302 Jan 2, 2023
Sandbox project for practice: Media Streaming with Exoplayer (via Android Development tutorial)

Media streaming with ExoPlayer The code in this repository accompanies the Media streaming with ExoPlayer codelab. If you are looking to get started w

Jeannille Hiciano 1 Nov 29, 2021
ZExoRecyclerPlayer is an Android library that allows developers to easily create RecyclerView with Exoplayer .

ZExoRecyclerPlayer Description ZExoRecyclerPlayer is an Android library that allows developers to easily create RecyclerView with Exoplayer . Please f

mohammed alzoubi 4 Dec 12, 2022
mpv-android is a video player for Android based on libmpv.

mpv-android is a video player for Android based on libmpv.

null 1.1k Jan 6, 2023
This is a basic demo application for exoplayer library.

ExoPlayer Demo Application This is a basic demo application for exoplayer library. It can stream these types of file: MP3 MP4 DASH HLS You can minimiz

Soumik 1 Apr 8, 2022
A Spotify Clone that plays music and has similar UI to actual Spotify Mobile App. Made with Exoplayer and love ❤️

Spotify Clone A Spotify Clone App that can play music, and has a good looking UI that is very similar to actual Spotify Mobile App on Play Store I use

Utku Oruç 4 Oct 12, 2022
Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.

ijkplayer Platform Build Status Android iOS Video player based on ffplay Download Android: Gradle # required allprojects { repositories {

bilibili 31k Jan 3, 2023
Android/iOS video player based on FFmpeg n3.4, with MediaCodec, VideoToolbox support.

ijkplayer Platform Build Status Android iOS Video player based on ffplay Download Android: Gradle # required allprojects { repositories {

bilibili 29.8k Dec 22, 2021
Free p2p cdn android github sdk to reduce video streaming costs of live and on demand video using webrtc by upto 90% and improve scalability by 6x - 🚀 Vadootv 🚀

Android p2p cdn sdk to distribute load and reduce costs(https://peervadoo.com) Vadootv is a p2p sdk integration to reduce your video streaming costs b

Vadootv 40 Oct 5, 2022
The Madman library (Media Ads Manager) enables you to advertise video contents with video ads.

Madman (Media ads manager) is a high performance alternative to Google's standard IMA android SDK. If you have your own VAST server and want to render video ads and have full control over the UI, then this library is for you.

Flipkart Incubator 65 Nov 10, 2022
Custom Android view with video player, loader and placeholder image

VideoPlayerView Custom Android view with video player, loader and placeholder image. To stay up-to-date with news about the library Usage Here is an e

Marcin Moskała 89 Nov 18, 2022