Skip to content

Roadmap #6

@iBicha

Description

@iBicha

This issue acts as a living roadmap for planning purposes. It might not be extensive, and it does not replace the CHANGELOG

Planned for v0.42.0

  • TBD

Released in v0.41.0

  • Added telemetry

Released in v0.40.0

Released in v0.39.0

  • Filter content in Playlet backend, with settings
    • Shorts

Released in v0.38.0

  • Watched progress indicator

Released in v0.37.0

Released in v0.35.0

  • Search filters in Playlet backend
  • Locale and region in Playlet backend

Released in v0.34.0

  • Playlet backend features (Innertube)
  • [UX] Clarify the difference between Playlet lib/app versions in the UI

Released in v0.33.0

  • Long videos fix
  • Age restricted videos (through casting)

Released in v0.32.0

  • Quality selector

Released in v0.31.0

  • Trickplay thumbnails when using Playlet backend

Released in v0.30.0

  • Export registry

Released in v0.29.0

  • Support for auto-generated captions in Playlet backend

Released in v0.28.0

  • Support autoplay (play next) in Playlet backend

Released in v0.27.0

  • Playlet backend for playing videos

Released in v0.26.0

  • Web app hot fix

Released in v0.25.0

  • Added sort options to channel live streams

Released in v0.24.0

  • UI changes to support different languages

Released in v0.23.0

  • Use squashfs to load playlet lib faster

Released in v0.22.0

  • Localization - will add support to for localization and start with French as the second language
    • Roku
    • Web App

Released in v0.21.0

Released in v0.20.0

Released in v0.19.0

Released in v0.18.0

  • Invidious watch history

Released in v0.17.1

  • Add an Invidious instance test to test if thumbnails have valid paths and are reachable

Released in v0.17.0

  • Web app remote control

Released in v0.16.0

Released in v0.15.1

  • A setting to disable search history
  • Fixes

Released in v0.15.0

Released in v0.14.0

Released in v0.13.1

Released in v0.13.0

  • Channel page UI feed (videos, playlists, related channels, continuation)
  • Display channels in web app
  • better state caching
    • Use etag headers to cache files

Released in v0.12.0

  • Channel page UI
  • Search filters

Released in v0.11.0

  • A major rewrite/refactor of the app. Please see the CHANGELOG as well
  • Support for both created playlists and saved playlists [Bug] /api/v1/auth/playlists returns no videos for saved playlists iv-org/invidious#3995
    • Created playlists are "Invidious" playlists, and the ID starts with "IV"
    • Need to use /api/v1/auth/playlists/ID which requires additional token scope
  • Continuous feed load on paginated APIs
  • TV Playlist
    • Play next on playlists
    • Add to queue (Web App)
  • Setup unit tests
  • Playlist page UI
  • Logs Web API
  • Invidious instance health check (check for stats api)
  • Implement a mechanism to avoid issues with misconfigured instances (missing domain or external_port) missing domain is no longer a problem, as we prepend the api paths with the instance url

Released in v0.10.3

Released in v0.10.2

  • [UX] add a search button next to the search bar in web app
  • Improve SponsorBlock segments (Fix SponsorBlock zero videoDuration bug #23 follow up)
    • Handle segments when videoDuration is zero (compare with lengthSeconds from metadata)
    • Compare videoDuration with lengthSeconds, reject segment if difference is bigger than a second
    • Should ignore videoDuration
  • Figure out a way to share feedback without needing a Github account (email)

Released in v0.10.1

Released in v0.10.0

  • A new settings screen Preferences / Web App #79
    • can configure many options, like autoplay, preferred video quality, invidious, sponsorblock, etc
  • New Web App! Web app #80
    • Shows all features from the TV app: Search, home feed, settings, and info
    • Can cast to TV or redirect to invidious
    • Light/Dark mode
  • Add an option in main app to clear the playlet-lib url from registry, in case of softlock to an unwanted playlet-lib version Clear playlet lib arg #84
  • Handle case when video is casted while a dialog is showing Close dialog when casting a video #85

Released in v0.9.0

Released in v0.8.0

Released in v0.7.0

Released in v0.6.0

Released in v0.5.0

Released in v0.4.0

  • Live videos
  • DASH support (/api/manifest/dash/id/${videoId} [?local=true])
  • Invidious Logout (invalidate token)
  • Customize Invidious instance
    • setting in web app
  • Invidious instances API
  • Search page UI

Released in v0.3.0

  • Branding: new name! Playlet
  • Branding: logo Playlet
  • Fix project setup (linter/formatter)
  • Fix tooling setup (SceneGraph inspector)
  • Integrate roku-promise package
  • Invidious API definition file
    • Home layout default definition file
    • Trending
    • Popular
    • User feed
    • User playlists
  • Webserver router middleware
  • Long-running webserver
  • Registry API
  • More granular Invidious token scope
  • App Controller (not really done, to be refactored)
    • Video Player
    • Side menu
    • Home page
    • Settings
  • Login page on the web app

Roadmap (in no particular order)

  • Remove long press, use Options (*) key instead
  • Limit VideoQueue so it doesn't grow indefinitely. Perhaps make playing a playlist reset the queue
  • Refactor content node 77ebd18
  • Filter content in Playlet backend, with settings
    • "Creator on the rise" in trending
    • "Pay to watch" (paid videos in courses)
  • The UX is not clear: There's a backend setting, but it is only for playback. This needs to become clearer; a proper "backend" setting
    • [UX] Clarify that Playlet backend is only for video stream
  • Implement NextParams to fetch multiple videos (video id array) with one request
  • "Continue watching" list of videos Remembering Playback Position and Watch History  #138
  • Add an option to block NSFW videos (parental control)
  • [UX] Clarify that Auto (DASH) quality can go up to 1080p
  • Add a selector for the content country for region specific trending videos and search results
  • Make sure all selectable items are compatible with the screen reader for better accessibility
  • Add the list of subscribed channels to the home screen
  • Refactor different notifications (added to queue, device connected, sponsorblock) and make them size responsive
  • Context menu in web app (bookmarks)
  • Bookmarks web apis
  • Add the ability to set playlet lib from a custom url in web app
    • Support for loading Playlet Lib from a PR
  • Add a setting to clear cache (cachefs)
  • Add a setting to clear registry (all user data)
  • Video player controls
    • Playback speed
    • Quality selector (video selector + audio selector)
    • Caption
    • Next video
    • Loop button
  • Now playing from web app
    • controls, seek bar
  • Try to support 4k videos
  • SponsorBlock: "Multiple Segments Skipped" notification
  • Add support for chapters (not supported by Invidious yet)
  • Implement Basic Auth Add basic auth #17
  • Closed caption configuration/settings
  • Comments
  • SponsorBlock UI notification : Undo button
  • [Spike] Add Piped API support Support for Piped? #75
  • [Spike] Add ViewTube API support
  • Annotation support
  • Video description support
    • Detect urls in description, Make them "focusable" and selectable.
    • Once selected, a QR Code can be generated
  • Show video related videos
  • Video add to Playlist
    • Add to Watch later
    • Remove from playlist
  • Implement roSystemLog
  • [Spike] implement HDR video
  • Implement remote key binding system for configurable buttons
  • Import/Export of Playlet user preferences - export implemented

Graveyard

These have been abandoned, or no longer apply.

  • [UX] clarify that the web app contains more settings than just casting Feature request - be able to provide own invidious URL (for self-hosted) #24
    • By adding a settings page and moving qr code to it's own screen, this seems to be established.
  • /invidious/replay API replay
    • /invidious/replay/api/v1/stats would proxy to $INSTANCE/api/v1/stats
    • This is already done for authenticated calls, and will be added to needed endpoints only
  • Music mode (no video)
    • Unless there's demand for this, there's no reason for it. It makes sense on mobile to save battery, but not on a TV.
  • [Spike] online service backup
    • Back up current roRegistry to pastebin-like service
    • Encrypt using device Id
    • Simply a bad idea: settings can be imported/exported to a file. We can add web app UI for this functionality.
  • [SPIKE] Web Share Target API
    • Web app must be installable, which means it needs to be served over HTTPS
      • Option 1: serve over HTTPS from Roku somehow
      • Option 2: serve from a hosted app (Maybe Github Pages would do) that won't work, it will hit Mixed Content Security Policy
      • Option 3: native mobile app? -> this remains the only logical option, still on the roadmap
      • Option 4: Dockerized local web app (self-hosted)
        • Have an advantage of being bundled with Invidious, and also can auto-find the TV
  • [Spike] Configurable installed version (latest vs specific version)
    • This is done as a developer menu
  • [Spike] Fix non-Latin characters (Unicode on Roku sucks) [Spike] Rich label rendering idea #40
  • [SPIKE] run yt-dlp on Roku using https://github.com/MotleyCoderDev/wasm2brs
    • Not much is possible with wasm2brs - a Playlet extractor might make more sense.
  • [BUG] Fix launchArg video focus issue (Create Component Library #43 regression) (no longer an issue after the v0.11.0 rewrite)
  • Add option to preview/watch a video on web app (using Invidious embed ${instance}/embed/${videoId})
  • Load known DASH urls before loading video details for faster load times #35
  • Chrome extension to cast to Playlet
  • Logs Web App UI (a button to download logs) - done
  • Native mobile app for casting from Official Youtube app Poc/nativescript #118
  • Log the lastExitOrTerminationReason value
  • Items deferred in Preferences / Web App #79
    • Setting controls should not have "instant save" to avoid accidental changes (on the web)
    • Buttons!
      • Invidious -> User -> logout (and display username?)
      • Reset settings? -> low priority, not for now
    • Error handling of web requests
  • Embedded preview video (auto-play)
  • Customize SponsorBlock instance - will reconsider if people are self hosting sponsorblock instances
    • setting in web app
  • [Spike] Use NewLeaf backend - not a priority
  • Theme support
    • Roku
    • Web App
  • Adjust picture in picture position on Search Page
  • Dislike count (Return YouTube Dislike integration)
  • SponsorBlock UI notification: show for a maximum of 3 seconds when Video UI is not visible, to avoid showing the notification for too long on long segments. Notification should be visible when Video UI is visible
  • SponsorBlock user id
  • Use expire field (in video urls) to check if video expired
    • Do an http-request with "cache-only" flag
    • If expired, make a request with "no-cache" flag
  • [Spike] DeArrow integration

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions