diff --git a/README.md b/README.md index 12c9cbf..f2add78 100644 --- a/README.md +++ b/README.md @@ -4,71 +4,91 @@ The JTube TV logo, a little orange TV

-JTube TV is an Android TV app for [PeerTube](https://joinpeertube.org/). It puts -a PeerTube instance on the big screen the way SmartTube puts YouTube there: -browse from the couch, play with the remote, nothing else in the way. +

+ Watch your PeerTube instance from the couch, with the remote. +

-It talks to any PeerTube instance over the +JTube TV is an Android TV app for + PeerTube. +It does for a PeerTube instance what SmartTube does for YouTube: a big-screen, +D-pad-first way to browse your videos, your channels and your watch history and +play them — and nothing else in the way. + +It is built for people who self-host their videos on PeerTube and want to watch +them on the TV without a phone, a cast button or a browser. Sign in once with +your PeerTube account and the whole instance is a few clicks away on the remote: +your own uploads (private ones included), the channels you follow, what you were +watching last, and the instance's public videos and search. + +It works with any PeerTube instance over the [REST API](https://docs.joinpeertube.org/api-rest-reference.html). The default -is [tube.jeena.net](https://tube.jeena.net), my own instance, where most videos -are private family uploads. Signing in matters because "My videos" shows them -all, privacy levels included. +in the sign-in screen is [tube.jeena.net](https://tube.jeena.net), the author's +own instance, but you can point it at yours. ## What it looks like -Screenshots come from a demo instance serving real, CC-licensed open-movie +The screenshots use a public demo instance with real, CC-licensed open-movie content, courtesy of the [Blender Foundation](https://www.blender.org/) movies -and the [A propos de PeerTube](https://framatube.org) channel. All of it plays +and the [A propos de PeerTube](https://framatube.org) channel — all of it plays in the app. -The home screen. Continue watching picks up at the position the server saved, -new videos first, page after page. +**Home.** Three rows: *Continue watching* picks up each video at the position +the server saved, then the newest local videos, then the newest from the +channels you follow. Scroll right and more load on their own.

- Home screen with Continue watching and New videos rows + Home screen with Continue watching, New local videos and subscriptions rows

-A slide-in drawer opens with the left D-pad button. My videos shows your own -uploads, every privacy level included, with a badge on anything not public. +**The menu.** A sidebar slides in — press the left D-pad at the edge of a row, +or just press Back from anywhere in a list. It jumps to Home, My videos, +Channels, Search, Subscriptions and History.

Menu drawer with the destinations

+**My videos.** Everything you own, every privacy level, with a badge on +anything that isn't public. +

My videos grid with Private and Internal badges

-Channels, one row per owner, with video and play counts on every card. +**Channels.** One row per owner, with video, subscriber and play counts on +every card. Open a channel for its banner, its stats and all its videos — and a +Subscribe button you can reach with the remote.

Channels screen with channel cards

-The player speaks remote: play and pause, seek back and forward, a seek bar -with position and duration. Watching is reported to the server every 20 -seconds, so where you left off survives the app. +**The player** speaks remote: play and pause, seek back and forward, a seek bar +with position and duration, and the video's info, comments and playlists a +button away. Watching is reported to the server every 20 seconds, so where you +left off survives closing the app.

Player with controls, seek bar and title

-## What it does in v0.1 +## What it does -- Sign in once. The app exchanges your username and password for OAuth tokens - and stores only those, encrypted with the Android Keystore. The password - itself is never kept. -- Home with Continue watching and New videos. -- Browse the instance's public videos, and search them by title. -- My videos: every video you own, private, internal and unlisted included. -- Channels: local channels with their videos, plus your subscriptions and your - server-side watch history. -- Player: HLS, with a progressive MP4 fallback, resume from the saved - position, and watching reports. +- **Sign in once.** The app trades your username and password for OAuth tokens + and keeps only those, encrypted with the Android Keystore. The password is + never stored. +- **Home** with Continue watching, new local videos and new videos from your + subscriptions. +- **Browse and search** the instance's public videos by title. +- **My videos** — every video you own, private, internal and unlisted included. +- **Channels** — local channels with their videos, plus your subscriptions and + your server-side watch history. +- **Subscribe** to and unsubscribe from channels, from the player or a channel + page. +- **Player** — HLS with a progressive MP4 fallback, resume from the saved + position, like/dislike, comments, playlists, and watching reports. -What it deliberately does not do (yet, or ever): uploading, editing, -deleting, managing subscriptions. That's tracked in -[BACKLOG.md](BACKLOG.md). +What it deliberately does not do: uploading, editing or deleting content. ## Build @@ -102,4 +122,6 @@ A single-module app, deliberately small: ## License -JTube TV is free software under [GPL-3.0-or-later](LICENSE). \ No newline at end of file +JTube TV is free software under [GPL-3.0-or-later](LICENSE). The PeerTube logo +is a trademark of [Framasoft](https://framasoft.org/), used here to refer to the +PeerTube project. diff --git a/docs/peertube-logo.svg b/docs/peertube-logo.svg new file mode 100644 index 0000000..4f07ef9 --- /dev/null +++ b/docs/peertube-logo.svg @@ -0,0 +1,6 @@ + + + + + +