newsic
You're very welcome to open an issue for bugs you found, improvements or new ideas :)
Got YouTube or Vimeo playlists with way too many songs and a thirst for exploring something new? With newsic you can listen to small 30-second song snippets (or the whole song) and discover other playlists easily.
Project page & demo
Project page: newsic.tocsin.de
How newsic looks like
System requirements
newsic's backend is based on Python 3 and the Flask framework, while the frontend uses Plyr (which comes bundled with this repository). Required Python packages are listed in the requirements.txt.
Optional dependencies
Starting with version 0.3 newsic offers support for caching, compressing and minifying - based on Flask Caching, Flask-Compress and htmlmin. The packages are installable with pip install -r requirements-performance.txt
. See config.py.example for all available options and module documentation.
For using .env
and .flaskenv
newsic supports python-dotenv. Installable with pip install -r requirements-env.txt
or, more directly: pip install python-dotenv
.
Run
- Clone this repository:
git clone https://github.com/newsic/newsic.git
- Go to newsic/newsic and create a config.py from config.py.example
- Add your API keys (YouTube, Vimeo) to config.py
- Install the minimal requirements with
pip install -r requirements.txt
; you might want to use a virtual environment - Set newsic as Flask app with
export FLASK_APP=newsic
and start it withflask run
. The script is now running at 127.0.0.1:5000
Deployment
For running newsic on your server (or a shared hosting provider) you would like to use a deployment script. There are many different options for running Flask on a server.
As an example have a look at the FCGI script powering the newsic demo (hosted proudly on Uberspace) in the deployment repository.
Shortcuts
Shortcut | What it does |
---|---|
A or โ |
Previous song |
D or โ |
Next song |
S , K or Space bar |
Toggle play/pause |
C |
Play complete song |
F |
Toggle fullscreen |
M |
Toggle mute |
X |
Start mix based on current song |
L |
Search for lyrics on Genius |
E |
Focus search field |
License
MIT License, Copyright (c) 2015-2019 Stephan Fischer (@tocsinDE, stephan-fischer.de, tocsin.de)
For more details see LICENSE.
Dependencies and credits
Core
- Flask: Armin Ronacher (@mitsuhiko) and contributors, BSD License (3-clause)
- Flask-Babel: Python-Babel team (https://github.com/python-babel), BSD License (3-clause)
- Plyr: Sam Potts (@sampotts), MIT License
- PyVimeo: Vimeo (@vimeo), Apache License 2.0
Optional
- Flask Caching: Peter Justin (@sh4nks), BSD License (3-clause)
- Flask-Compress: William Fagan (@libwilliam), MIT License
- htmlmin: Dave Mankoff (@mankyd)
- python-dotenv: Saurabh Kumar (@theskumar), BSD License (3-clause)
Donate
If you think newsic is worth a small donation: Thank you very much :) Let me be clear that earning money wasn't the motivation behind all this. I'll appreciate your code contributions, pull requests or bug reports just equally :)