Juno – Vision Pro用YouTubeクライアント

Building Juno: A YouTube Client for visionOS

YouTube is an integral part of the internet experience for many users, including myself. So, when YouTube announced that they don’t plan to build a visionOS app and disabled the option to load the iPad app, I was disappointed. The website experience on visionOS is decent, but it lacks the feel of a native visionOS app. Additionally, visionOS doesn’t allow users to add websites to the Home Screen, making YouTube less convenient on the platform.

However, my previous experience with developing Apollo, an app that played YouTube videos submitted to Reddit, gave me insights into how YouTube works. This sparked the idea to reuse some of Apollo’s code and build my own YouTube client for visionOS. And after a week of intense coding, “Juno for YouTube” was born.

The APIs Behind YouTube

YouTube provides several APIs for developers. The “Data API” allows fetching video metadata like thumbnails and duration, but it requires an API key and has usage limitations. There are also private/internal APIs that YouTube discourages developers from using due to the potential to circumvent ads. Finally, there’s the embed API, which I utilized in Apollo and now in Juno. This API allows loading YouTube videos in a webview and provides JavaScript methods for interacting with the video player.

By leveraging the embed API, I was able to build a fully native visionOS UI that interacts with the underlying YouTube player. This approach offers the best of both worlds, allowing for a seamless user experience. Juno even supports detecting aspect ratios of videos and automatically resizes the window accordingly.

Creating a Native Feel with CSS and JavaScript

Juno doesn’t scrape the YouTube website; instead, it presents the website as it would load in a browser. However, similar to browser extensions, Juno tweaks the theming of the site using CSS and JavaScript. This customization effort was a significant undertaking, but I’m delighted with the final result. While it may not feel like a perfectly native visionOS app, it’s a vast improvement over the website experience.

Ads and YouTube Premium

Since Juno uses the YouTube website, it doesn’t block ads by default. This is intentional, as I wanted to respect Google’s policies. However, if you have a YouTube Premium subscription, you won’t see any ads while using Juno. YouTube Premium is a subscription I highly recommend, as it not only eliminates ads but also supports creators more effectively than ad-based revenue. If you can afford an expensive Apple Vision Pro, treating yourself to YouTube Premium is worth considering.

The Future of Juno

Juno was developed in a rush to coincide with the launch of the Apple Vision Pro. However, I have plans to add more features and improvements over time. If there’s something specific you’d like to see in Juno, please let me know. Your feedback and suggestions are invaluable in shaping the app’s future.

As of now, Juno is available on the App Store for a one-time payment of $5. There are no subscriptions or in-app purchases. I believe in encouraging developers to build for premium platforms, and a paid upfront app model aligns with that belief. You can find Juno on the App Store or visit juno.vision for more information.

In conclusion, Juno offers a comfortable way to browse YouTube on visionOS, and its ability to launch quickly from the Home Screen adds convenience. I’m excited to continue working on Juno and grateful to Matthew Skiles for designing the app’s icon. Download Juno today and let me know about your experience and feedback on Mastodon or Twitter!

All Posts · Mastodon · Twitter · RSS · Contact

© Christian Selig 2024


  • この記事はAI(gpt-3.5-turbo)によって自動生成されたものです。
  • この記事はHackerNewsに掲載された下記の記事を元に作成されています。
    Juno – A YouTube Client for Vision Pro
  • 自動生成された記事の内容に問題があると思われる場合にはコメント欄にてご連絡ください。