homepage

A simple flask web app that pulls the audio track from almost any internet video using ytdl

https://github.com/sh3llcod3/homepage

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (13.1%) to scientific vocabulary

Keywords

downloader flask flask-application hacktoberfest python video webapp wsgi-application youtube-dl youtube-dl-wrapper
Last synced: 6 months ago · JSON representation

Repository

A simple flask web app that pulls the audio track from almost any internet video using ytdl

Basic Info
  • Host: GitHub
  • Owner: Sh3llcod3
  • License: mit
  • Language: Python
  • Default Branch: master
  • Homepage:
  • Size: 1.25 MB
Statistics
  • Stars: 1
  • Watchers: 1
  • Forks: 1
  • Open Issues: 2
  • Releases: 0
Topics
downloader flask flask-application hacktoberfest python video webapp wsgi-application youtube-dl youtube-dl-wrapper
Created over 6 years ago · Last pushed over 1 year ago
Metadata Files
Readme License

README.md

HomePage

HomePage is a trivial flask web app that pulls the audio track from almost any internet video. It is intended to be deployed inside a private network for private use.

HomePage relies on trustworthy youtube_dl to download the videos, so quite a few sites are supported. Playlists are also supported.

HomePage

Prerequsites

  • python 3.6 or above with pip
  • Superuser access (for port 80)
  • pyenv and poetry (not required with PyPi)
  • Ubuntu, Debian, Mint or Arch.

Install

The basic installation is very simple.

```bash $ python3 -m pip install --user homepage

Normal desktop

$ homepage -i

Server without x11

$ homepage -ic ```

If you are using Arch, please ensure you have an up-to-date version and package list

Then, you can deploy with:

bash $ homepage -dfp

Alternatively, if your system is running an older version of python or you wish to run this project inside a virtual environment, you can do that too.

First, go ahead and install pyenv. Then install poetry. Once you've installed those, we just to install a few more things.

bash $ git clone https://github.com/Sh3llcod3/HomePage.git $ cd HomePage/ $ pyenv install 3.9.0 $ pyenv local 3.9.0 $ poetry poetry self update --preview $ poetry update $ poetry install # Add --no-dev if you don't want dev deps $ poetry shell $ homepage -ip $ homepage -df

After installing pyenv, the lines you add to your ~/.bashrc/.bash_profile may need to be different, please see the FAQ.

Uninstall

If you installed using pip:

shell python3 -m pip uninstall -y homepage easyparse Flask youtube_dl gevent

and it will remove this completely from your system. You can vary this command based on what you want to keep.

Otherwise, if you've installed using poetry and assuming you're inside the current directory:

shell $ exit # Exit virtualenv or press Ctrl-d $ poetry env remove 3.9 $ poetry cache clear --all pypi $ cd .. && rm -rf HomePage/

Usage

Once deployed, if you're using this on the device which is hosting it, fire up your favourite web browser and head to the displayed address. If you're on another device, simply head to the IP address of the host node.

If you have Superuser access, use the -f switch. This will add an iptables rule forwarding port 80 to 5000.

Playlists are supported and all sites that will with ytdl will also work here.

Troubleshooting

I'm having problems with the env

You may have inserted the wrong lines in your ~/.bashrc or .bash_profile (if using arch). The initialization lines shown on the pyenv repo don't work well with poetry. Instead, add these lines to the end of the file and remove any previous lines you may have added before (taking care to ensure you don't remove anything else).

```bash

Pyenv installation

if [[ -z "$VIRTUAL_ENV" ]]; then export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)" fi ```

Can I change the background?

To change the background, swap out homepage/static/bg.webp with any image you like, but keep the same name and use WEBP format.

Pyenv fails to install 3.9.0

You may have forgotten to install the crucial pyenv dependencies. Check here for their wiki page.

Then retry the pyenv installation.

Why does this exist?

I wanted a simple no-frills web-app to pull audio tracks on private network devices, without having access to a command line version of youtube_dl or resorting to using external sites or apps.

Why is it not working?

Your version of youtube_dl may be out of date. Having a version of youtube_dl that is even one version old can mean your tracks may fail to download. Fortunately, the repo is updated frequently and you can pull in the updates very easily.

If you're using it from PyPi, then: shell $ python3 -m pip install --upgrade youtube_dl gevent Flask --user $ youtube-dl --rm-cache-dir

If you're using it from Poetry, then go to your cloned repo and run: shell $ poetry update $ poetry shell

Does this scale to multiple users asynchronously?

No. It was never intended to scale in the first place. Neither is it secure in any way. Therefore, I should stress that you should NOT deploy this to anywhere except your RFC1918 private/internal network range with caution.

Does it have Windows support?

Yes. If you can get the latest executables for lame, atomicparsley, faac, ffmpeg and place them inside the project's directory, it should work.

To-do

  • [ ] Add auth
  • [ ] Replace xhr with websocket
  • [ ] Save user preferences using cookies
  • [ ] Display past tracks only for that user
  • [ ] Add management card
  • [ ] Make it work on windows and generate executables

Owner

  • Name: Yudhajit
  • Login: Sh3llcod3
  • Kind: user
  • Location: United Kingdom

GitHub Events

Total
Last Year

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 48
  • Total Committers: 1
  • Avg Commits per committer: 48.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Yudhajit N 2****3 48

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 0
  • Total pull requests: 10
  • Average time to close issues: N/A
  • Average time to close pull requests: 3 months
  • Total issue authors: 0
  • Total pull request authors: 2
  • Average comments per issue: 0
  • Average comments per pull request: 0.1
  • Merged pull requests: 7
  • Bot issues: 0
  • Bot pull requests: 8
Past Year
  • Issues: 0
  • Pull requests: 1
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 1
  • Average comments per issue: 0
  • Average comments per pull request: 0.0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 1
Top Authors
Issue Authors
Pull Request Authors
  • dependabot[bot] (14)
  • Sh3llcod3 (2)
Top Labels
Issue Labels
Pull Request Labels
dependencies (14)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 105 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 2
  • Total versions: 19
  • Total maintainers: 1
pypi.org: homepage

A simple flask webapp to download the audio track from almost any internet video.

  • Versions: 19
  • Dependent Packages: 0
  • Dependent Repositories: 2
  • Downloads: 105 Last month
Rankings
Dependent packages count: 10.1%
Dependent repos count: 11.6%
Downloads: 16.1%
Average: 18.4%
Forks count: 22.6%
Stargazers count: 31.9%
Maintainers (1)
Last synced: 6 months ago

Dependencies

poetry.lock pypi
  • attrs 21.4.0 develop
  • bandit 1.7.1 develop
  • bleach 4.1.0 develop
  • certifi 2021.10.8 develop
  • charset-normalizer 2.0.12 develop
  • cryptography 36.0.1 develop
  • docutils 0.18.1 develop
  • flake8 4.0.1 develop
  • flake8-bandit 2.1.2 develop
  • flake8-bugbear 22.1.11 develop
  • flake8-import-order 0.18.1 develop
  • flake8-polyfill 1.0.2 develop
  • flake8-string-format 0.3.0 develop
  • flake8-tidy-imports 4.5.0 develop
  • flake8-todo 0.7 develop
  • gitdb 4.0.9 develop
  • gitpython 3.1.20 develop
  • idna 3.3 develop
  • importlib-resources 5.4.0 develop
  • jeepney 0.7.1 develop
  • keyring 23.4.1 develop
  • mccabe 0.6.1 develop
  • mypy 0.931 develop
  • mypy-extensions 0.4.3 develop
  • packaging 21.3 develop
  • pbr 5.8.1 develop
  • pkginfo 1.8.2 develop
  • pycodestyle 2.8.0 develop
  • pyflakes 2.4.0 develop
  • pygments 2.11.2 develop
  • pyparsing 3.0.7 develop
  • pywin32-ctypes 0.2.0 develop
  • pyyaml 6.0 develop
  • readme-renderer 33.0 develop
  • requests 2.27.1 develop
  • requests-toolbelt 0.9.1 develop
  • rfc3986 1.5.0 develop
  • secretstorage 3.3.1 develop
  • six 1.16.0 develop
  • smmap 5.0.0 develop
  • stevedore 3.5.0 develop
  • tomli 1.2.3 develop
  • tqdm 4.63.0 develop
  • twine 3.8.0 develop
  • typed-ast 1.5.2 develop
  • urllib3 1.26.8 develop
  • webencodings 0.5.1 develop
  • brotli 1.0.9
  • brotlicffi 1.0.9.2
  • cffi 1.15.0
  • click 8.0.4
  • colorama 0.4.4
  • dataclasses 0.8
  • easyparse 1.0.6
  • flask 2.0.3
  • gevent 21.12.0
  • greenlet 1.1.2
  • importlib-metadata 4.2.0
  • itsdangerous 2.0.1
  • jinja2 3.0.3
  • markupsafe 2.0.1
  • mutagen 1.45.1
  • pycparser 2.21
  • pycryptodomex 3.14.1
  • typing-extensions 4.1.1
  • websockets 8.0.2
  • werkzeug 2.0.3
  • yt-dlp 2022.3.8.2
  • zipp 3.6.0
  • zope.event 4.5.0
  • zope.interface 5.4.0
pyproject.toml pypi
  • flake8 * develop
  • flake8-bandit * develop
  • flake8-bugbear * develop
  • flake8-import-order * develop
  • flake8-string-format * develop
  • flake8-tidy-imports * develop
  • flake8-todo * develop
  • mypy * develop
  • requests * develop
  • setuptools * develop
  • twine * develop
  • Flask *
  • easyparse *
  • gevent *
  • python ^3.6
  • yt-dlp *