Skip to content

guillevc/swifttube

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 

Repository files navigation

SwiftTube

SwiftTube

The iOS YouTube app for your self-hosted library

Streams from your Jellyfin or Tube Archivist server. Native iOS playback with Picture in Picture, lock screen controls, and background audio.

Download on TestFlight   Website

Note

This repository is for bug reports and feature requests. Source code is not public.

Setup Guide

SwiftTube supports three backend configurations. Pick one based on your existing stack and playback needs.

Setup Playback YouTube metadata
Jellyfin Direct play or transcoded (any codec) Basic, via third-party plugin
Tube Archivist Direct play only (H.264 + AAC required) Full, with channel stats
Tube Archivist + Jellyfin Direct play or transcoded (any codec) Rich, via official TA Jellyfin plugin

Jellyfin

Playback

Jellyfin transcodes VP9, AV1, and WebM sources to HLS on demand, so existing downloads play as-is. H.264 + AAC in MP4 direct-plays and skips the transcode.

Metadata

Jellyfin's built-in providers do not parse YouTube sources. Install ankenyr's YouTube metadata plugin to extract channel names, thumbnails, and upload dates. It reads .info.json sidecars and requires a specific folder layout; see its README.

Tube Archivist

Playback

Tube Archivist does not transcode, so the on-disk container and codecs must be AVPlayer-compatible. yt-dlp's defaults (VP9 or AV1 + Opus in WebM) cannot be demuxed or decoded by AVPlayer and will not play.

Set Settings > Downloads > Format to H.264 + AAC in MP4:

bestvideo[vcodec*=avc1]+bestaudio[acodec*=mp4a]/mp4

This direct-plays on every supported iPhone and will direct-play on Apple TV once that target ships. Re-download existing videos to apply the new codecs.

Limitation: YouTube caps H.264 at 1080p.

Metadata

Built-in. SwiftTube reads channel, views, likes, and subscribers from the Tube Archivist REST API using a static token.

Tube Archivist + Jellyfin

Playback

Served by Jellyfin, so any codec works and TA's download format constraints don't apply.

Metadata

Install the official Tube Archivist Jellyfin plugin to sync Tube Archivist's YouTube metadata into Jellyfin items, then point SwiftTube at Jellyfin.

Roadmap

  • Apple TV app.
  • iPad interface support.
  • SwiftTube Jellyfin plugin. A SwiftTube-specific companion plugin for richer YouTube metadata, like view counts, likes, subscribers, playlists, etc.

Feedback

Open an issue for bugs or feature requests. For bugs, include steps to reproduce and what you expected. For features, include the use case.


SwiftTube is an independent project. Not affiliated with Jellyfin or Tube Archivist. Thanks to both teams for their work.

About

SwiftTube feedback and issues tracking

Topics

Resources

Stars

5 stars

Watchers

1 watching

Forks

Contributors