# SimpleerTube Active Known Instances: - https://simpleertube.metalune.xyz If you want to add your instance to this list, message us on IRC (#simple-web on irc.libera.chat). For the rest of the documentation, https://simpleertube.metalune.xyz will be used as an example instance. If you want to visit any page from your PeerTube instance of choice in SimpleerTube, just prepend https://simpleertube.metalune.xyz to the URL. So, `https://videos.lukesmith.xyz/accounts/luke` becomes `https://simpleertube.metalune.xyz/videos.lukesmith.xyz/accounts/luke`. If you visit the main page, you can search globally (it uses [Sepia Search](https://sepiasearch.org) in the backend). ## Setup You need to setup a few dependencies first, usually using pip (`sudo apt install python3-pip` on Debian): ``` $ sudo pip3 install quart bs4 html2text lxml ``` **Note:** If there are other dependencies that are not packaged with your system, please report them to us so they can be added to this README. Now you can run a development environment like so: ``` $ python3 main.py # Starts on localhost:5000 $ python3 main.py 192.168.42.2 # Starts on 192.168.42.2:5000 $ python3 main.py 7171 # Starts on localhost:7171 $ python3 main.py 192.168.42.2 7171 # Starts on 192.168.42.2:7171 $ python3 main.py ::1 7171 # Also works with IPv6 addresses ``` It is strongly disrecommended to run the production using this command. Instead, please refer to the [Quart deployment docs](https://pgjones.gitlab.io/quart/tutorials/deployment.html). ## Subscriptions If you would like to display the latest videos from your favorite channels/accounts on the homepage, simply place your subscriptions in `accounts.list` or `channels.list` files, like so: ``` # Comments are allowed in here with a # marker # Each entry can be one of: # - user@server # - @user@server # - http(s)://server/a/user (accounts.list only) # - http(s)://server/c/channel (channels.list only) ``` ## TODO - Federation errors (eg. name not resolving) are not handled properly, producing bloaty tracebacks server side and unfriendly errors client side - Expects to run in the webroot, not in a subdirectory - Relies on search.joinpeertube.org API, while we should be able to configure a different SepiaSearch instance - Search result uses `{{ domain }}` instead of actual result-related domain - Cache should be persisted across runs? Especially since simply running main.py reloads the server every time a python file is saved to disk - Maybe caching of API requests should be handled in peertube.py? subscriptions caching should stay in main.py though - Support a mode/theme to act as lightweight frontend for a single instance, maybe reusing real peertube URL format? - Missing account/channel picture is not pretty: https://tube.fr.tild3.org/kolektiva.media/accounts/bureburebure/video-channels - main.py is starting to be a bit long, with some code duplication - Lots of duplication in templates - Configurable number of latest videos on homepage ## Contributing Patches should be sent to `~metalune/public-inbox@lists.sr.ht` with git send-email command ([tutorial](https://git-send-email.io/)). ## License This software is distributed under the AGPLv3 license. You can find a copy in the [LICENSE](LICENSE) file.