• Stars
    star
    137
  • Rank 264,818 (Top 6 %)
  • Language
    Python
  • License
    MIT License
  • Created about 6 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

youtube download queue websocket server with login for private NAS.

GitHub license Docker Pulls Shield Docker Stars Shield

youtube-dl-nas

simple youtube download micro web queue server. To prevent a queue attack when using NAS as a server, a making account was created when creating a docker container, and a new UI was added. This Queue server based on python3 and debian Linux. https://hub.docker.com/r/modenaf360/youtube-dl-nas/

screenshot1

Update Info

  • 2023.02.19 : [Patch] Changed the executable from youtube-dl to yt-dlp for fixed error about 'Unable to extract uploader id' and download speed..
  • 2022.09.29 : [Patch] Check for updates essential packages on first startup container.
  • 2022.09.28 : [Patch] Clears URL input when submitting the form.
  • 2021.12.09 : [Patch] Fix proxy setting bug
  • 2021.05.03 : [Patch] Fix random mkv or mp4 format when specifying resolution
  • 2020.11.13 : [Patch] Added docker optinal variable to support youtube-dl proxy
  • 2020.08.12 : [Patch] Added audio-mp3 option
  • 2019.04.25 : [Patch] Failed to fetch jessie backports repository patch during build Dockerfile, Add Scheduler update "pip install -U youtube-dl" once a day.You no longer need to update pip youtube-dl when inexecutable in the container.
  • 2020.04.07 : [Patch] Audio only option for web-ui and REST call. Change username field type for compatiblity
  • 2020.02.10 : [Patch] Modifying so this will work behind HTTPS as well.
  • 2019.02.13 : [Patch] binary excution error update, : 'caused by ExtractorError("Could not find JS function 'encodeURIComponent'; please report this issue on https://yt-dl.org/bug ..'. Binary Excution file update docker rebuild,Specify release version in html page
  • 2018.11.08 : [Patch] binary excution error update, : 'youtube_dl.utils.RegexNotFoundError: Unable to extract Initial JS player signature function name'. some url like(https://youtu.be/), Handling Variables on Application Ports for Using the docker Network Host Mode,Specify release version in html page
  • 2018.10.06 : [Patch] Prevent thread death due to websocket exception in walker thread after download, add REST API
  • 2018.10.01 : [Minor Patch] Patching worker thread dead symptom when moving the browser during download, add resolution 1440p, 2160p(4k)
  • 2018.09.28 : [Add functional option] Resolution selectable, Downloaded result html table representation**

You can check the status of download queue processing in real time using websocket from the message below the text box.

screenshot

How to use this image

To run docker, excute this command in a ternimal:

The docker volume parameter -v is used by the queue operation to process the downloaded mount path to the host server

  • downloaded docker volume path : '/downfolder'
  • MY_ID, MY_PW : Required variables when you login validation, The start character '!' '$' '&' is does not apply.
  • TZ : optional variable.

docker options are as follows,

Variables Description
-v host:guest /downfolder (do not change guest location. expose volume mount to host server)
-d background run
-p host:guest expose port conainer core-os port to your os (port fowarding)
-e MY_ID using it login id, linux environment variables, do not use start character '!' '$' '&'
-e MY_PW using it login password, linux environment variables , do not use start character '!' '$' '&'
-e TZ take it to user country, linux environment variables
-e APP_PORT optinal variable. default is 8080
-e PROXY optinal variable. set youtube-dl proxy, default is ""
To run docker, excute this command in a ternimal:
docker run -d --name youtube-dl -e MY_ID=modenaf360 -e MY_PW=1234  -v /volume2/youtube-dl:/downfolder -p 8080:8080 modenaf360/youtube-dl-nas
If want set TimeZone, example using in South-Korea web content
docker run -d --name youtube-dl -e TZ=Asia/Seoul -e MY_ID=modenaf360 -e MY_PW=1234 -v /volume2/youtube-dl:/downfolder -p 8080:8080 modenaf360/youtube-dl-nas
example, how to using docker host network and changing the application port :
# use --net=host -e APP_PORT=custom_port
docker run -d --name youtube-dl --net=host -e APP_PORT=9999 -e MY_ID=modenaf360 -e MY_PW=1234  -v /volume2/youtube-dl:/downfolder modenaf360/youtube-dl-nas

Request restful API & Response

curl -X POST http://localhost:8080/youtube-dl/rest \
  -d '{
	"url":"https://www.youtube.com/watch?v=s9mO5q6GiAc",
	"resolution":"best", 
	"id":"iamgroot",
	"pw":"1234"
}'
{
    "success": true,
    "msg": "download has started",
    "Remaining downloading count": "7"
}

If you want to get into docker container os, excute this command [1] :

docker exec -i -t youtube-dl /bin/bash
Example, when using synology docker provisioning platform
  • docker volume mount setting

screenshot1

  • ID, Password setting to docker environment screenshot1

Reference

[1]. https://docs.docker.com/engine/reference/commandline/cli/#environment-variables

More Repositories

1

computing-Korean-STT-error-rates

STT ํ•œ๊ธ€ ๋ฌธ์žฅ ์ธ์‹๊ธฐ ์ถœ๋ ฅ ์Šคํฌ๋ฆฝํŠธ์˜ ์™ธ์ž ์˜ค๋ฅ˜์œจ(CER), ๋‹จ์–ด ์˜ค๋ฅ˜์œจ(WER)์„ ๊ณ„์‚ฐํ•˜๋Š” Python ํ•จ์ˆ˜ ํŒจํ‚ค์ง€
Python
31
star
2

vertx-embedded-springboot

Vert.x embeded Springboot
Java
21
star
3

Hyperparameters-Optimization

Hyperparameters-Optimization
Jupyter Notebook
15
star
4

AIsketcher

Text-to-image generation using Huggingface stable diffusion ControlNet conditioning and AWS Translate's prompt translation function
Python
11
star
5

disparity-based-space-vagriant-image-deblurring

โ€œDisparitybased space-variant image deblurring,โ€ Signal Processing: Image Communication, vol. 28, no. 7, pp. 792โ€“808, 2013.
11
star
6

vagrant-rancher2.0

vagrant rancher2.0 kubernetes orchestration tool example
Shell
10
star
7

dataplatform

Hadoop3.2 single/cluster mode with web terminal gotty, spark, jupyter pyspark, hive, eco etc.
Shell
10
star
8

gotty-docker

Sharing the terminal using gotty in the docker container.
Dockerfile
9
star
9

springboot-examples

Spring Boot Examples
Java
7
star
10

colab-tensorflow-tpu-example

colab-tensorflow-tpu-example
Jupyter Notebook
6
star
11

aws-korea-2023-coding-school

aws-korea-2023-coding-school
Jupyter Notebook
5
star
12

ISO-3166-alpha2-alpha3-korean

ISO-3166-alpha2-alpha3-korean
4
star
13

FSI-Gameday-General-Immersion-Day

Python
4
star
14

yesno

yes or no flask
Python
3
star
15

ECS-Immersion-Day

3
star
16

mariadb-galera-cluster

mariadb 10.1 galera-cluster docker-compose
Shell
2
star
17

springboot-properties-docker

How to use springboot properties in docker or docker-compose
Java
2
star
18

python-xmas-tree

Python
2
star
19

kubernetes-dashboard-nodeport

kubernetes dashboard using nodeport
Shell
2
star
20

ubuntu-dind

ubuntu18.04 dind test bed
Dockerfile
2
star
21

jenkins-dind

jenkins docker in docker (dind)
Shell
2
star
22

kafka-metric-example

HTML
2
star
23

alpine-nginx-perl

nginx:1.13.3-alpine install perl
Dockerfile
1
star
24

morgan-winston-dailylog

JavaScript
1
star
25

competition

1
star
26

python-threads-queue

simple python thread queue using producer consumer pattern
Python
1
star
27

Deep-Learning-Hyperparameter-optimization

Deep-Learning-Hyperparameter-optimization
Jupyter Notebook
1
star
28

minikube-dev-env

Shell
1
star