improve the language of readme

there are two commented sections I could not make sense of. Requires attention!
This commit is contained in:
Luc 2021-12-07 16:31:37 +01:00
parent 8c77a06e41
commit 47b1b2faf4
1 changed files with 69 additions and 66 deletions

135
README.md
View File

@ -7,16 +7,16 @@ YouTube (with a built-in download client). It is designed to synchronize channel
playlists from YouTube to local directories and update your media server once media is playlists from YouTube to local directories and update your media server once media is
downloaded. downloaded.
If you want to watch YouTube videos in particular quality or settings from your local If you want to watch YouTube videos, in a particular quality, from your local media server
media server, then TubeSync is for you. Internally, TubeSync is a web interface wrapper then TubeSync is for you. Internally, TubeSync is a web interface wrapper on `yt-dlp`
on `yt-dlp` and `ffmpeg` with a task scheduler. and `ffmpeg` with a task scheduler.
There are several other web interfaces to YouTube and `yt-dlp` all with varying There are several other web interfaces to YouTube and `yt-dlp` all with varying
features and implementations. TubeSync's largest difference is full PVR experience of features and implementations. TubeSync's main difference is the full PVR experience of
updating media servers and better selection of media formats. Additionally, to be as updating media servers and better selection of media formats. In an effort to be as
hands-free as possible, TubeSync has gradual retrying of failures with back-off timers *hands-free* as possible TubeSync includes gradually retrying failed tasks using
so media which fails to download will be retried for an extended period making it, back-off timers. Meaning media which fails to download will be retried for an extended
hopefully, quite reliable. period making it, hopefully, quite reliable.
# Latest container image # Latest container image
@ -50,26 +50,26 @@ ghcr.io/meeb/tubesync:latest
# Requirements # Requirements
For the easiest installation, you will need an environment to run containers such as It's easiest to use a environment like Docker or Podman. Obviously each downloaded
Docker or Podman. You will also need as much space as you want to allocate to video takes space and this needs to be available. If you download a lot of media at
downloaded media and thumbnails. If you download a lot of media at high resolutions high resolutions this can be a hundreds of gigabytes. Manual installation is
this can be very large. [documented at the bottom of this readme](#manual-non-containerised-installation).
# What to expect # What to expect
Once running, TubeSync will download media to a specified directory. Inside this Once running, TubeSync will download media to a specified directory, for docker this is
directory will be a `video` and `audio` subdirectories. All media which only has an `/downloads`. Inside this directory the `video` and `audio` subdirectories will be created.
audio stream (such as music) will download to the `audio` directory. All media with a All media which only has an audio stream will download to the `audio` directory.
video stream will be downloaded to the `video` directory. All administration of All media that includes a video stream will be downloaded to the `video` directory.
TubeSync is performed via a web interface. You can optionally add a media server, All administration of TubeSync is performed via a web interface. Optionally you can add
currently just Plex, to complete the PVR experience. a media server to complete the PVR experience (for now only Plex is supported).
# Installation # Installation
TubeSync is designed to be run in a container, such as via Docker or Podman. It also TubeSync is designed to be run in a container, such as via Docker or Podman. It also
works in a Docker Compose stack. Only `amd64` architecture is supported for now. works in a Docker Compose stack. Only the `amd64` architecture is supported for now.
### Prerequisites ### Prerequisites
@ -192,44 +192,48 @@ Back-end updates such as database migrations should be automatic.
### Moving, backing up, etc. ### Moving, backing up, etc.
TubeSync, when running in its default container, stores thumbnails, cache and its When TubeSync is running in its default container thumbnails, cache and the
SQLite database into the `/config` directory and wherever you've mapped that to on your SQLite database are stored in the `/config` directory. This directory should
file system. Just copying or moving this directory and making sure the permissions are be mapped on your host file system. Simply copying or moving this directory
correct is sufficient to move, back up or migrate your TubeSync install. and making sure the permissions are correct is sufficient to move, back up
or migrate your TubeSync install.
# Using TubeSync # Using TubeSync
### 1. Add some sources ### 1. Add a source (or multiple)
Pick your favourite YouTube channels or playlists, pop over to the "sources" tab, click Pick your favourite YouTube channels or playlists and copy the url from the browser.
whichever add button suits you, enter the URL and validate it. This process extracts In TubeSync go to the **`sources`** tab and click the type of content you want to add,
the key information from the URL and makes sure it's a valid URL. This is the channel enter the URL and validate it. This process extracts the key information from the URL
name for YouTube channels and the playlist ID for YouTube playlists. and makes sure it's a valid URL.
You will then be presented with the initial add a source form where you can select <!-- This is the channel name for YouTube channels and the playlist ID for YouTube playlists.
really not sure what you are trying to say here -->
You will then be presented with the initial add a source form. Here you can select
all the features you want, such as how often you want to index your source and the all the features you want, such as how often you want to index your source and the
quality of the media you want to download. Once happy, click "add source". quality of the media you want to download. Once happy, click **`add source`**.
### 2. Wait ### 2. Let TubeSync download
That's about it. All other actions are automatic and performed on timers by scheduled That's about it. All other actions are automatic and performed on timers by scheduled
tasks. You can see what your TubeSync instance is doing on the "tasks" tab. tasks. You can see what your TubeSync instance is doing on the **`tasks`** tab.
As media is indexed and downloaded it will appear in the "media" tab. As media is indexed and downloaded it will appear in the **`media`** tab.
### 3. Media Server updating ### 3. Media Server updating
Currently TubeSync supports Plex as a media server. You can add your local Plex server Currently TubeSync supports Plex as a media server. You can add your local Plex server
under the "media servers" tab. under the **`media servers`** tab.
# Logging and debugging # Logging and debugging
TubeSync outputs useful logs, errors and debugging information to the console. You can TubeSync outputs useful logs, errors and debugging information to the console. The logs can
view these with: be viewed like this:
```bash ```bash
$ docker logs --follow tubesync $ docker logs --follow tubesync
@ -252,28 +256,28 @@ and less common features:
# Warnings # Warnings
### 1. Index frequency ### 1. Index interval
It's a good idea to add sources with as long of an index frequency as possible. This is It's recommended to add sources with an index interval as long as possible. This is
the duration between indexes of the source. An index is when TubeSync checks to see the duration between indexing the source for newly added videos. The default indexing
what videos available on a channel or playlist to find new media. Try and keep this as interval is 24 hours.
long as possible, up to 24 hours.
### 2. Indexing massive channels ### 2. Indexing massive channels
If you add a massive (several thousand videos) channel to TubeSync and choose "index If you add a massive (several thousand videos) channel or playlist to TubeSync
every hour" or similar short interval it's entirely possible your TubeSync install may and choose **`index every hour`** or similar short interval it's entirely possible
spend its entire time just indexing the massive channel over and over again without TubeSync may spend its entire time just indexing the massive amount of videos
downloading any media. Check your tasks for the status of your TubeSync install. over and over again without downloading any media. Check your tasks for the status
of your TubeSync install.
If you add a significant amount of "work" due to adding many large channels you may If you add a significant amount of *work* due to adding many large channels you may
need to increase the number of background workers by setting the `TUBESYNC_WORKERS` need to increase the number of background workers by setting the `TUBESYNC_WORKERS`
environment variable. Try around ~4 at most, although the absolute maximum allowed is 8. environment variable. Try around 4 at most, although the absolute maximum allowed is 8.
**Be nice.** it's likely entirely possible your IP address could get throttled by the **Be nice.** it's possible your IP address could get throttled by the source if you try and crawl
source if you try and crawl extremely large amounts very quickly. **Try and be polite extremely large amounts very quickly. **Try and be polite with the smallest amount of
with the smallest amount of indexing and concurrent downloads possible for your needs.** indexing and concurrent downloads possible for your needs.**
# FAQ # FAQ
@ -283,27 +287,26 @@ with the smallest amount of indexing and concurrent downloads possible for your
No, TubeSync is designed to repeatedly scan and download new media from channels or No, TubeSync is designed to repeatedly scan and download new media from channels or
playlists. If you want to download single videos the best suggestion would be to create playlists. If you want to download single videos the best suggestion would be to create
your own playlist, add the playlist to TubeSync and then add single videos to your your own playlist, add the playlist to TubeSync and then add single videos to your
playlist as you browse about YouTube. Your "favourites" playlist of videos will download playlist as you browse about YouTube. Newly added video's to that playlist will
automatically. be downloaded automatically.
### Does TubeSync support any other video platforms? ### Does TubeSync support any other video platforms?
At the moment, no. This is a pre-release. The library TubeSync uses that does most At the moment, no. This is a pre-release. However, TubeSync uses
of the downloading work, `yt-dlp`, supports many hundreds of video sources so it's a library, `yt-dlp`, that supports downloading from hundreds of different video sources.
likely more will be added to TubeSync if there is demand for it. So it's likelymore will be added to TubeSync if there is demand for it.
### Is there a progress bar? ### Is there a progress bar?
No, in fact, there is no JavaScript at all in the web interface at the moment. TubeSync No, in fact, there is no JavaScript at all in the web interface at the moment. TubeSync
is designed to be more set-and-forget than something you watch download. You can see is designed to be more set-and-forget than something you watch download. <!-- the last sentence is a bit odd, needs clarification/better wording --> You can see
what active tasks are being run in the "tasks" tab and if you want to see exactly what what active tasks are being run in the "tasks" tab and if you want to see exactly what
your install is doing check the container logs. your install is doing check the container logs.
### Are there alerts when a download is complete? ### Are there alerts when a download is complete?
No, this feature is best served by existing services such as the execelent No, this feature is best served by existing services such as the execelent
[Tautulli](https://tautulli.com/) which can monitor your Plex server and send alerts [Tautulli](https://tautulli.com/) which can monitor your Plex server and send alerts that way.
that way.
### There's errors in my "tasks" tab! ### There's errors in my "tasks" tab!
@ -313,7 +316,7 @@ interrupted and will be tried again later. Sources with permanet errors (such as
media available because you got a channel name wrong) will be shown as errors on the media available because you got a channel name wrong) will be shown as errors on the
"sources" tab. "sources" tab.
### What is TubeSync written in? ### Which language is TubeSync written in?
Python3 using Django, embedding yt-dlp. It's pretty much glue between other much Python3 using Django, embedding yt-dlp. It's pretty much glue between other much
larger libraries. larger libraries.
@ -331,8 +334,8 @@ See the [Pipfile](https://github.com/meeb/tubesync/blob/main/Pipfile) for a full
### Can I get access to the full Django admin? ### Can I get access to the full Django admin?
Yes, although pretty much all operations are available through the front end interface Yes, although pretty much all operations are available through the front-end interface
and you can probably break things by playing in the admin. If you still want to access and you could break things by playing in the admin area. If you still want to access
it you can run: it you can run:
```bash ```bash
@ -345,15 +348,15 @@ can log in at http://localhost:4848/admin
### Are there user accounts or multi-user support? ### Are there user accounts or multi-user support?
There is support for basic HTTP authentication by setting the `HTTP_USER` and There is support for basic HTTP authentication by setting the `HTTP_USER` and
`HTTP_PASS` environment variables. There is not support for multi-user or user `HTTP_PASS` environment variables. There is no support for multi-user or user
management. management.
### Does TubeSync support HTTPS? ### Does TubeSync support HTTPS?
No, you should deploy it behind an HTTPS-capable proxy if you want this (nginx, caddy, Yes, but only when using a proxy like nginx, caddy, etc. Configuration of this
etc.). Configuration of this is beyond the scope of this README. is beyond the scope of this README.
### What architectures does the container support? ### Which architectures are supported in Docker?
Just `amd64` for the moment. Others may be made available if there is demand. Just `amd64` for the moment. Others may be made available if there is demand.