viewtube

▶️ ViewTube: The open source, privacy-conscious way to enjoy your favorite YouTube content. Docs: https://viewtube.wiki, Status: https://uptime.viewtube.io

AGPL-3.0 License

Stars
1.2K
Committers
25

Bot releases are visible (Hide)

viewtube - v0.16.2 Latest Release

Published by github-actions[bot] 4 months ago

Added

  • Add "load more" on search page #2838

Fixed

  • Bind API to :: by default #2832
  • Fix docker healthcheck #2842
viewtube - v0.16.1

Published by github-actions[bot] 4 months ago

Added

  • Add environment variable VIEWTUBE_LOCATION to specify location for trending page, etc. #2829
  • Support device controls for videoplayer (ex. in Notification) #2823
viewtube - v0.16.0

Published by github-actions[bot] 4 months ago

👉 Highlights

This release is quite significant, so I've decided to provide a detailed release post.

  • 📺 New video player

    Implemented by me (@moisout)

    The video player has been rewritten. The old one was getting unmaintainable, most of the logic lived in a single file with over 1000 lines of code.

    The new player has now reached approximate feature parity with the old one, so I feel comfortable releasing it. I am not done working on it, you can check out the roadmap.

    Here are some of the new things it does:

    🔭 Reliable quality switching

    All quality options delivered by YouTube are available in the quality switcher. This includes up to 8k, 60fps and HDR.

    The player will try to play up to the quality set in the users settings. You can also manually select a quality from the quality switcher.

    quality switcher

    🗣️ Support for multiple language tracks

    If a video has multiple audio tracks, you can select them from the language switcher.

    language track switcher

    📝 Subtitles

    Also, support for subtitles! The renderer for subtitles is pretty basic, so it doesn't support all the fancy stuff YouTube does, but it should work for most videos.

    subtitles example

    🖼️ Seekbar hover preview

    Hovering over the seekbar now provides a frame preview, including the current SponsorBlock segment and chapter.

    seekbar hover preview example

  • ⌚ Configurable subscription interval time

    Implemented by @patricgruber

    You can now customize the interval for how often subscriptions should be updated. Configure the environment variable in minutes.

    VIEWTUBE_SUBSCRIPTION_INTERVAL_TIME=60
    
  • 🩳 Exclude shorts from search results

    Implemented by @frozenduck

    Exclude shorts from search results by enabling the option "Hide shorts" in the settings.

  • 📜 Expandable subscriptions on homepage

    Implemented by @nargacu83

    Subscriptions on the homepage now work like the trending section. You can expand them to see more videos.

    subscriptions on homepage

  • 🛑 Ability to set custom SponsorBlock API URL

    Implemented by @patricgruber

    You can now set a custom SponsorBlock API URL in the settings.

    sponsorblock API URL settings

Full Changelog

Added

  • Set custom SponsorBlock API URL (Thanks @patricgruber) #2799
  • Configurable subscription interval time (Thanks @patricgruber) #2798
  • Add option to exclude shorts from search results (Thanks @frozenduck) #2795
  • Expandable subscriptions on homepage (Thanks @nargacu83) #2790
  • Add option to select playback speed from a list (Thanks @frozenduck) #2771
  • New video player #2388

Fixed

  • Rewrite comments API #2772
  • Perform search when clicking on autocomplete suggestion (Thanks @frozenduck) #2770
viewtube - v0.15.3

Published by github-actions[bot] 7 months ago

Added

  • Upgrade to node 20 #2692
  • Add toggle to turn off comments (Thanks @frozenduck) #2739
  • Add toggle to turn off trending homepage (Thanks @nargacu83) #2735
  • Add toggle to turn off recommended videos (Thanks @nargacu83) #2747

Fixed

  • Fix dash manifest for livestreams #2741
  • Opt in to import.meta.* properties (Thanks @danielroe) #2726
viewtube - v0.15.2

Published by github-actions[bot] 8 months ago

Added

  • Video share option to copy the YouTube link (Thanks @chonsser) #2610

Fixed

  • Upgrade package youtubei.js to fix "error 400" issue #2667
viewtube - v0.15.1

Published by github-actions[bot] 10 months ago

Added

  • Video share option to copy URL at timestamp (Thanks @alvanrahimli) #2530

Fixed

  • Fix cannot read seconds of undefined #2531
  • Start video at timestamp in URL (Thanks @alvanrahimli) #2530
  • Don't add "s" after timestamp in URL #2535
  • Fix default theme overriding setting #2535
viewtube - v0.15.0

Published by github-actions[bot] 10 months ago

Added

  • Add option to disable registration to admin panel #2499
  • Add option to require login everywhere to admin panel #2499
  • Allow users to be added via the admin panel #2499

Fixed

  • Use loadeddata event to fix video player aspect ratio (Thanks @themisir) #2505
  • Use value of apiUrl, fixes account deletion issue (Thanks @alvanrahimli) #2515
  • Fix logout not working #2499
viewtube - v0.14.2

Published by github-actions[bot] 10 months ago

Fixed

  • Remove miniplayer references causing issues #2496

Changed

Added

  • Upgrade dependencies #2496
viewtube - v0.14.1

Published by github-actions[bot] 10 months ago

Fixed

  • Override rollup for arm64 builds #2494
viewtube - v0.14.0

Published by github-actions[bot] 10 months ago

Breaking ⚠️

  • Disable clustering by default #2378
    • Clustering is now disabled by default. If you want to use clustering, you have to set the VIEWTUBE_CLUSTERED environment variable to true.

Added

  • Directly call fastify instance from nuxt server #2378
  • Detect theme from system #2379
  • Upgrade dependencies #2380

Changed

  • Switch homepage to trending, as popular was causing issues #2490

Fixed

  • Fix nuxt import on windows (only relevant for development) #2377
  • Fix "window is not defined" when logged in and "Rewrite YouTube URLs" is enabled #2469
  • Fix certain search terms not working #2493
viewtube - v0.13.1

Published by github-actions[bot] 12 months ago

Fixed

  • Fixed videoplayback proxy headers #2376
viewtube - v0.13.0

Published by github-actions[bot] 12 months ago

Added

  • Reworked authentication with new devices interface in profile #2186

Fixed

  • Make client cookie logic more robust #2259
  • Upgrade packages and cleanup unused #2261
viewtube - v0.12.2

Published by github-actions[bot] about 1 year ago

Fixed

  • Retry subscriptions on 429 rate limit #2182
  • Use proxy for videoplayback #2196
viewtube - v0.12.1

Published by github-actions[bot] about 1 year ago

Fixed

  • Basic fix for livestreams #2157
  • Fix subscription search (Thanks @cyacedev) #2159
  • Fix rate limit for proxy #2165
  • Fix the ability to upload a profile image #2161

Added

  • Option to rewrite YouTube URIs in descriptions to ViewTube URIs (Thanks @cyacedev) #2164
  • Add capability to export subscriptions (Thanks @cyacedev) #2162
viewtube - v0.12.0

Published by github-actions[bot] about 1 year ago

Fixed

  • Properly format author name in watch page title (Thanks @mattfbacon) #2147
  • Don't rate limit client #2149
  • Fix subscription job #2151

Added

  • New subscription importing experience (Thanks @cyacedev) #2151
viewtube - v0.11.0

Published by github-actions[bot] about 1 year ago

Added

  • Create release on CHANGELOG.md edit #2085
  • Switch to unocss icons and include in build #2088
  • Add API route for DASH manifest #2116

Fixed

  • Fix log file list in admin panel #2104
  • Use undici.request for videoplayback proxy #2113
  • Use non-broken cache-manager-redis-yet #2115
  • Switch to youtube.js for search #2119
  • Fix channel home page #2119

Changed

  • Use rotating proxy for subscription list fetches #2105
viewtube - v0.10.0

Published by moisout over 1 year ago

Added

  • Migrate to Nuxt 3 #1425
  • Upgrade nestjs to v9 #1425
  • Rewrite channel page #1425 #1642 #1652
    • All content is now available, instead of just the channel homepage
    • New channel api
    • Mobile friendly touch navigation
  • Add dislikes from return youtube dislike #1373
  • Warn users about username being case sensitive #1384
  • Don't allow creation of user with same name of any case, restrict username length when registering #1385
  • Add Password Change Function #1476
  • Run nightly tests #1496
  • Add tests project with cypress e2e tests #1553 #1565
  • Show current commit version in About panel #1600

Changed

  • Switch to GitHub actions #1477 #1480 #1482
  • Remove requirement for VIEWTUBE_URL environment variable #1588

Fixed

  • Fix daily refresh of popular page #1387
  • Create database index for videobasicinfo #1391
  • Handle subscriptions importing errors #1478 (Thanks @cyacedev)
  • Always resize tiny thumbnails to 36x36 #1486
  • Change base docker image for compatibility with Raspi #1472 (Thanks @beardeddude)
    • Note: Raspberry Pi compatibility is still broken
  • Cleanup unused and old files #1533
  • Improve docker image size #1546
  • UI fixes and other refactorings #1590
  • Formatting and cleanup #1598
  • Many other fixes
viewtube - v0.9.1

Published by moisout over 2 years ago

Fixed

Added

  • Lots of dependency upgrades
  • Improve caching
viewtube - v0.9.0

Published by moisout almost 3 years ago

Fixed

  • Subscribe button reliability #941
  • Encoding for search autocomplete #929
  • Video playback on ios #917
  • Disable CSP on non-https instances #1070
  • Disable some unnecessarily heavy database requests to improve performance #1102
  • Improve CI and build performance #1081
  • Dont set secure cookie on non-https connections #1071
  • Other small bugfixes

Added

  • High quality video support using MPEG-DASH #912
  • Video player keybindings #932
  • Add CSV import for youtube takeout format (thanks to @cyacedev) #984
  • Add healthcheck for docker 45ceb45
  • Switched to a yarn 2 monorepo using pnp #988
  • Reduce required environment variables #1067
  • Lots of dependency upgrades
viewtube - v0.8.0

Published by moisout about 3 years ago

Fixed

  • Run subscriptions job in batches #766
  • Smaller build by removing unused dependencies #841
  • Livestream VODs are playable now #849
  • Fix Livestreams on iOS by using native HLS support #849
  • Remove Invidious instance switcher, as invidious is no longer used in the frontend #858
  • Properly size channel thumbnails #859

Added

  • Use redis for API caching #474
  • Queue system for the subscriptions job #474
  • Add statistics api for user registrations #754
  • Ability to autoplay video #795
  • Ability to autoplay the next video #795
  • Add loop video control #795
  • Adjustable video speed #795
  • Add settings for autoplay, autoplay next video, loop and speed #795
  • Add setting to disable subscriptions on home screen #795
  • Add default quality setting #795
  • Switch from express to fastify #830
  • Implement new API security measures #830
  • Add rate limiting (max. 100 request per minute per endpoint, 1000 for proxy) #830
  • Add end-to-end tests for core endpoints #830
  • Implement clustering for better multi-core usage #845