Repository navigation
Releases
Jovial v1.5.7
- Fixes the app crashing a few seconds into a video when 7TV, BTTV or FFZ emotes can't be loaded (for example when a DNS lookup fails on a VPN). Playback now continues, just without those emotes.
- Fixes a crash when leaving the player while the app is closing.
Installs over v1.1.0 and later directly. If you're still on v1.0.0, uninstall it first; it was signed with a different key.
Jovial v1.5.6
- Fixes long live-archive videos that wouldn't play when you resumed partway through (ERROR_CODE_PARSING_CONTAINER_UNSUPPORTED, "Skipping atom with length > 2147483647").
- These recordings have two indexes the player uses to jump to a point in the video: one for audio and one for video. In long recordings, the audio index is wrong past the 4 GB mark, about 3 hours into a typical stream.
- The player always used whichever index came first, so resuming late in the video jumped to the wrong spot in the file.
- The app now reads all the indexes and uses the most complete one.
Installs over v1.1.0 and later directly. If you're still on v1.0.0, uninstall it first; it was signed with a different key.
Jovial v1.5.5
- Another fix for ERROR_CODE_PARSING_CONTAINER_UNSUPPORTED. The video file on the server turned out to be fine, so this targets how the app fetches it:
- Video requests now ask the server for the plain file. Before, the player's first request quietly asked for a compressed copy, which could hand it data it couldn't read even though the file itself was fine.
- When a video fails like this, the app now drops all its server connections and tries again on fresh ones, the way a force stop did. If that still fails, it tries the HLS version when there is one.
- If it still can't play, the error box shows more detail: the server's reply to the exact request the player makes (status, content type, compression, size, first bytes) and the player's own error message.
Installs over v1.1.0 and later directly. If you're still on v1.0.0, uninstall it first; it was signed with a different key.
Jovial v1.5.4
- Fixes "Couldn't play this video" (ERROR_CODE_PARSING_CONTAINER_UNSUPPORTED) on a video you'd been watching. This error means the server sent back something that isn't video, usually because the file has moved since the app last loaded the video list. The app now fetches the video's current file location from Ganymede and switches to it at the same spot. If that fails too, it tries the HLS version when the server has one.
- VOD details are always fetched fresh from the server instead of possibly coming from the app's disk cache. Emotes still use the cache.
- If a video still can't play, the error now shows what the server actually returned: the HTTP status, the type of content, and the first few characters. This makes it much easier to see what's wrong on the server side.
Installs over v1.1.0 and later directly. If you're still on v1.0.0, uninstall it first; it was signed with a different key.
Jovial v1.5.3
- Fixes a video that wouldn't play again after you returned to the app later. After a long pause the server connection is usually gone, and a player that had hit an error ignored the play button. The player now reconnects at the same spot when you resume after more than 2 minutes paused, or when you press play after an error. This also works from the notification or headphone buttons.
- If loading fails, it retries automatically a few times. If it still can't play, you'll see a "Couldn't play this video" message with a Retry button instead of a play button that does nothing.
- If buffering goes 20 seconds with no data arriving, the connection is reopened automatically.
- A saved position at or past the end of a video now restarts it from the beginning.
- Clears out leftover video data that older versions could leave in the app's cache. This was why clearing the cache used to help.
Installs over v1.1.0 and later directly. If you're still on v1.0.0, uninstall it first; it was signed with a different key.
Jovial v1.5.2
- Fixes buffering during playback. The video stream went through the same disk cache the app uses for emotes. That meant every byte of video was also written to storage while playing, which could stall playback even on a fast connection.
- The player now buffers 2-3 minutes ahead, up from under a minute, so short network drops shouldn't interrupt playback. The buffer has a memory cap, so very high bitrates buffer less.
- After a stall, playback waits for a few seconds of video before resuming, so it doesn't stop again straight away.
- A dropped connection now keeps retrying for about a minute and a half before giving up.
Installs over v1.1.0 and later directly. If you're still on v1.0.0, uninstall it first; it was signed with a different key.
Jovial v1.5.1
- Player controls now appear the instant you tap. Before, every tap waited about a third of a second in case it was a double-tap.
- Double-tapping the left or right side still skips 10 seconds. While the skip indicator is showing, single taps on the same side keep skipping, like YouTube.
- The controls fade in a little faster.
Installs over v1.1.0 and later directly. If you're still on v1.0.0, uninstall it first; it was signed with a different key.
Jovial v1.5.0
- Portrait mode is no longer fullscreen: the status and navigation bars stay visible and the player sits below the status bar, like YouTube. Landscape is still immersive fullscreen.
- Swipe up on the video in portrait to go fullscreen (landscape), and swipe down in fullscreen to go back. The player follows your finger while you swipe. Let go before the halfway point to cancel.
- New fullscreen button next to the time in the player controls. In fullscreen, the back button exits fullscreen first.
- Fullscreen rotates 180° when you flip your phone, even with auto-rotate turned off. With auto-rotate on, rotating back to portrait leaves fullscreen as usual.
- The server and VOD list screens no longer draw under the status bar.
Installs over v1.1.0 and later directly. If you're still on v1.0.0, uninstall it first; it was signed with a different key.
Jovial v1.4.0
- Background playback: the video now shows up as a media player in your notifications and on the lock screen, with play/pause, seek, artwork and title. Playback keeps going when you turn the screen off. Swiping Jovial away from recents or closing the picture-in-picture window stops it. It also pauses when headphones are unplugged or a call comes in.
- New YouTube-style player controls: tap to show or hide, a large centre play/pause button, 10-second skip buttons, double-tap the left or right side to skip (repeat to add more), and a slim purple seek bar that shows buffered progress and grows while you drag it. The controls fade out after 3 seconds of playback.
- Portrait mode: chat now goes above or below the video instead of beside it. The swap button and the Chat Position setting switch between top and bottom.
- Your layout settings (chat mode, side, width, font size, overlay opacity) are now saved and restored the next time you open the app.
Installs over v1.1.0 and later directly. If you're still on v1.0.0, uninstall it first; it was signed with a different key.
Jovial v1.3.0
- New app icon: a banded Jupiter with Ganymede in orbit and a play button, on a deep indigo sky. It's an adaptive vector icon, so it fits any launcher shape, and it supports Android 13+ themed (monochrome) icons.
Installs over v1.1.0 and later directly. If you're still on v1.0.0, uninstall it first; it was signed with a different key.