- Overview
- Features
- Getting Started
- Usage
- Public Instances
- Roadmap
- Contributing
- License
- Contact
- Acknowledgements
A mobile-friendly website that loops YouTube videos. It can loop an entire video or a portion of it. Try it out here!
I made this out of frustration with the current YouTube loopers out there. Most of them are full of ad banners and other intrusive elements, and don't work very well on mobile.
- Loop full YouTube videos or customize what to loop
- Mobile friendly
- Play videos while your phone is locked
- Save and share your loops
- Sleek dark theme with no ads, no banners and no distractions
- Focus on the video with "Turn Off the Lights" mode, inspired by this Firefox extension
To get a local instance up and running, follow these steps. If it's too complicated, feel free to use a public instance of the website instead.
- Python 3.7+
- A HTTP server (e.g. Nginx or Apache)
- Docker (optional)
- Clone the repo.
git clone https://github.com/Phixyn/no-bs-looper.git
- Install Python dependencies*
pip install -r requirements.txt
- Open
ws_server.py
and scroll to the bottom. - Replace
HOST
andPORT
with your desired values. Note thatHOST
should be the local address of your machine (e.g.192.168.1.69
). - Open
static/js/app.js
- Replace the address in
const websocket = new WebSocket( ... );
with the address and port you set in step 4. - Copy all the files in the
static/
folder to a HTTP server such as Nginx or Apache. - Run the backend server:
python ws_server.py
(CTRL + C to quit it).
*Python virtual environment:
I recommend setting up a virtual environment for the project. It's really easy:
python -m venv .env
Run that from the repo's root directory. Then activate it with either source .env/bin/activate
or .env\Scripts\activate.bat
on Windows. Once that's done you can install the project's requirements locally in the environment, instead of globally on your machine (see step 2).
Docker:
This project has a work-in-progress Dockerfile
that you can use to spin up an Nginx server, if you prefer. You'll have to mount/bind a volume for the static/
folder. Something like this could work for running the website on port 14666:
docker container run --name no-bs-looper -d -p 14666:80 -v E:\Phixyn\Projects\no-bs-looper\static:/usr/share/nginx/html phixyn/no-bs-looper
Obviously replace the path to the static folder with your own path. Note that it has to be an absolute path.
Depending on your HTTP server's setup, this may vary. If you followed all the steps in the Installation section, you'll be able to access the website using your local IP address, or localhost. If you can't get it set up, use one of the public instances listed below.
Once you're in the website, paste a YouTube video link or ID onto the video link text field and click "Update". Move the slider handles to loop a specific portion of the video, or leave them at the start and end to loop the full video.
You can save and share your loop by copying the URL in your address bar. The URL changes everytime you customize the loop or load a new video.
To reduce distractions and focus on the video, you can dim every element on the page by clicking "Turn off the lights". Click or tap anywhere on the page (outside of the video player) to disable this effect.
Since v1.1.0 you can copy full YouTube links instead of a video ID. However, if you still want to use video IDs instead, here's how to find them:
It's usually after the v=
portion of a YouTube link. For example:
For the above video, the video ID is dQw4w9WgXcQ
.
If you can't host your own instance of the website, use any of the public instances below.
Owner | Version | Link |
---|---|---|
Phixyn | v1.1.2 | http://ytlooper.phixyn.com/ |
If you decide to host your own public instance, feel free to update the README with a link to it and make a PR.
See milestones for a list of planned releases and associated issues.
This is still a work in progress. The Python backend server will soon be replaced and this will eventually be a full Node.js project. If you'd like to help out, please check out the issues page for anything you might be able to help with.
Please take a look at the contributing guidelines if you're interested in helping. All contributions are greatly appreciated!
GPL-3.0 License. For more information see LICENSE.
TL;DR: Use it anyway you want, modify the code anyway you want, but do share any changes you make (in the spirit of open source and no BS software).
Twitter @phixyn • phixyn.com
This software uses the following open source ❤︎ projects: