docs: rewrite the README for humans, add the PeerTube logo (#30)
Rewrite the README so it leads with what JTube TV is and who it's for, refresh the feature list and screenshot captions to match the current UI (three Home rows, Back opens the sidebar, Subscribe on the channel page), and add the official PeerTube logo next to the name. Screenshot images are refreshed in a follow-up. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
069dfe38c4
commit
e8117ab08e
2 changed files with 61 additions and 33 deletions
88
README.md
88
README.md
|
|
@ -4,71 +4,91 @@
|
||||||
<img src="docs/jtube-logo.svg" width="150" alt="The JTube TV logo, a little orange TV" />
|
<img src="docs/jtube-logo.svg" width="150" alt="The JTube TV logo, a little orange TV" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
JTube TV is an Android TV app for [PeerTube](https://joinpeertube.org/). It puts
|
<p align="center">
|
||||||
a PeerTube instance on the big screen the way SmartTube puts YouTube there:
|
<em>Watch your PeerTube instance from the couch, with the remote.</em>
|
||||||
browse from the couch, play with the remote, nothing else in the way.
|
</p>
|
||||||
|
|
||||||
It talks to any PeerTube instance over the
|
JTube TV is an Android TV app for
|
||||||
|
<a href="https://joinpeertube.org/"><img src="docs/peertube-logo.svg" width="16" alt="" valign="middle" /> PeerTube</a>.
|
||||||
|
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
|
[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
|
in the sign-in screen is [tube.jeena.net](https://tube.jeena.net), the author's
|
||||||
are private family uploads. Signing in matters because "My videos" shows them
|
own instance, but you can point it at yours.
|
||||||
all, privacy levels included.
|
|
||||||
|
|
||||||
## What it looks like
|
## 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
|
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.
|
in the app.
|
||||||
|
|
||||||
The home screen. Continue watching picks up at the position the server saved,
|
**Home.** Three rows: *Continue watching* picks up each video at the position
|
||||||
new videos first, page after page.
|
the server saved, then the newest local videos, then the newest from the
|
||||||
|
channels you follow. Scroll right and more load on their own.
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="docs/screenshots/home.png" width="800" alt="Home screen with Continue watching and New videos rows" />
|
<img src="docs/screenshots/home.png" width="800" alt="Home screen with Continue watching, New local videos and subscriptions rows" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
A slide-in drawer opens with the left D-pad button. My videos shows your own
|
**The menu.** A sidebar slides in — press the left D-pad at the edge of a row,
|
||||||
uploads, every privacy level included, with a badge on anything not public.
|
or just press Back from anywhere in a list. It jumps to Home, My videos,
|
||||||
|
Channels, Search, Subscriptions and History.
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="docs/screenshots/drawer.png" width="800" alt="Menu drawer with the destinations" />
|
<img src="docs/screenshots/drawer.png" width="800" alt="Menu drawer with the destinations" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
**My videos.** Everything you own, every privacy level, with a badge on
|
||||||
|
anything that isn't public.
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="docs/screenshots/myvideos.png" width="800" alt="My videos grid with Private and Internal badges" />
|
<img src="docs/screenshots/myvideos.png" width="800" alt="My videos grid with Private and Internal badges" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
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.
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="docs/screenshots/channels.png" width="800" alt="Channels screen with channel cards" />
|
<img src="docs/screenshots/channels.png" width="800" alt="Channels screen with channel cards" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
The player speaks remote: play and pause, seek back and forward, a seek bar
|
**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
|
with position and duration, and the video's info, comments and playlists a
|
||||||
seconds, so where you left off survives the app.
|
button away. Watching is reported to the server every 20 seconds, so where you
|
||||||
|
left off survives closing the app.
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<img src="docs/screenshots/player.png" width="800" alt="Player with controls, seek bar and title" />
|
<img src="docs/screenshots/player.png" width="800" alt="Player with controls, seek bar and title" />
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
## What it does in v0.1
|
## What it does
|
||||||
|
|
||||||
- Sign in once. The app exchanges your username and password for OAuth tokens
|
- **Sign in once.** The app trades your username and password for OAuth tokens
|
||||||
and stores only those, encrypted with the Android Keystore. The password
|
and keeps only those, encrypted with the Android Keystore. The password is
|
||||||
itself is never kept.
|
never stored.
|
||||||
- Home with Continue watching and New videos.
|
- **Home** with Continue watching, new local videos and new videos from your
|
||||||
- Browse the instance's public videos, and search them by title.
|
subscriptions.
|
||||||
- My videos: every video you own, private, internal and unlisted included.
|
- **Browse and search** the instance's public videos by title.
|
||||||
- Channels: local channels with their videos, plus your subscriptions and your
|
- **My videos** — every video you own, private, internal and unlisted included.
|
||||||
server-side watch history.
|
- **Channels** — local channels with their videos, plus your subscriptions and
|
||||||
- Player: HLS, with a progressive MP4 fallback, resume from the saved
|
your server-side watch history.
|
||||||
position, and watching reports.
|
- **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,
|
What it deliberately does not do: uploading, editing or deleting content.
|
||||||
deleting, managing subscriptions. That's tracked in
|
|
||||||
[BACKLOG.md](BACKLOG.md).
|
|
||||||
|
|
||||||
## Build
|
## Build
|
||||||
|
|
||||||
|
|
@ -102,4 +122,6 @@ A single-module app, deliberately small:
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
JTube TV is free software under [GPL-3.0-or-later](LICENSE).
|
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.
|
||||||
|
|
|
||||||
6
docs/peertube-logo.svg
Normal file
6
docs/peertube-logo.svg
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
<svg width="34" height="34" viewBox="0 0 34 34" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<rect width="34" height="34" rx="12" fill="#E9DFDF"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M11 16.3306V7L18 11.6653L11 16.3306Z" fill="black"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M11 25.6613V16.3307L18 20.996L11 25.6613Z" fill="#737373"/>
|
||||||
|
<path fill-rule="evenodd" clip-rule="evenodd" d="M18 20.996V11.6653L25 16.3306L18 20.996Z" fill="#F1680D"/>
|
||||||
|
</svg>
|
||||||
|
After Width: | Height: | Size: 486 B |
Loading…
Add table
Add a link
Reference in a new issue