|
12/24/2020, 11:41 AM
#1
icon.png
Excited to announce the General Availability of MeTube!
Release History:
- 1.0.0: General Availability, tested on Touchpad only
- 1.0.1: Security overhaul, to keep the big G happy with me. Required update for 1.0.0 users.
- 1.0.2: Basic support and testing done for webOS 2.x phones, improved search bar.
- 1.0.3: Configurable preferences, including API keys, layout fixes for Pre3.
- 1.0.4: Advanced features for self-hosters, Beta support for webOS 1.x, layout improvements for tiny screens
- 1.1.0: Support for all webOS devices -- including Pre and Pixi Plus, bug-fixes for self-hosters, new playback strategy options.
- 1.1.1: Support for the webOS "Just Type" search feature -- enable in Just Type settings
- 1.2.0: Added Popular videos feature, dynamic submit button, layout tweaks on all devices, improved video player launch.
- 1.2.1: Fix an issue where the spinner didn't show sometimes
- 1.3.0: Add video date, more layout improvements
- 1.4.0: Get more video details on tap, strip emojis from video titles
- 1.5.0: Now supports Reddit videos (as long as they're hosted by Reddit -- imgur and other hosts aren't supported)
LuneTube has been dead for months now, the original dev hasn't had time to update the version of youtube-dl he built for webOS -- a situation that is unlikely to improve as the cat-and-mouse game between Google and youtube-dl continues. MeTube is not dependent on compiling modern code for an abandoned platform, instead it uses a web service that acts on behalf of webOS to fetch the YouTube videos you want to watch. That web service can use the latest youtube-dl without compilation issues. The web service is heavily derived from work by Alex Shnitman (alexta69 on Github) with some supporting Apache2/PHP functions I whipped up (eventually I hope to migrate these into my MeTube fork.)
The mental model for MeTube is a little different than you might be used to. The thing to keep in mind is that you're never directly interacting with YouTube from your device -- you are submitting requests to the MeTube web service to interact with YouTube for you. That verb "submit" is the driving force of the UI:
- You can submit a "search" request, by entering any search word or phrase that doesn't contain "youtube.com" and the server will search on your behalf.
- You can submit a "fetch" request, by entering a YouTube video link (a fully formed one that contains "youtube.com" -- not a shortened URL).
- Once done, the app will submit a "list" request, to see if your video is ready on the server repeatedly (until a timeout)
- Finally the app will submit a service request to the built-in webOS video player, asking it to open the URL to the fetched video on the server
All this happens pretty smoothly in most cases. You'll note the transition from "search" to "fetch" involves you selecting a search result from a list, which updates the search box with the URL, so you can then submit again.
There are a bunch of caveats to be aware of -- some of which I can improve on the server side, as I have time, but some will likely always exist, because of the server-side model:
- Long videos just aren't going to work: the server is racing to fetch and convert the video for you before the time-out. If it can't get it done in time, the whole request is just abandoned. Practically, this means the maximum supported video length is usually under 30 minutes -- give-or-take.
- You might think "why not just increase the time out?" Well, there's another race interaction that exists, where files have to be "new" to be discovered by the client. That means the server has to be pretty judicious about cleaning up after itself. If the [clean-up interval] overlaps with the [client time-out + time it takes to stream the video], then the video will get nuked before you're done watching it.
I think I've found the right combination of timings for a pretty reasonable experience, but may continue to tweak over time. Fortunately, my new Updater Service is built-in, so if there's an update to the app, you'll know about it as soon as it gets published to the Museum!
MeTube does not require a proxy (although it is compatible with them), and is a tiny install on your device. All code is open source, and available on GitHub. I've done all the development on the Touchpad, but I will go back and tune it for phones shortly -- it works on a Veer, so should work on a Pre2 and up, but the screen layout needs to be optimized for tinier screens.
screenshot1.png
MeTube is available in App Museum II now, or by direct download from the online Museum catalog!
|
|
|