All Projects → hyeonsangjeon → youtube-dl-nas

hyeonsangjeon / youtube-dl-nas

Licence: MIT license
youtube download queue websocket server with login for private NAS.

Programming Languages

python
139335 projects - #7 most used programming language
Smarty
1635 projects
javascript
184084 projects - #8 most used programming language
CSS
56736 projects
Dockerfile
14818 projects
shell
77523 projects

Projects that are alternatives of or similar to youtube-dl-nas

Brute-Force-Login
Proof -Of-Concept Brute Force Login on a web-site with a good dictionary of words
Stars: ✭ 231 (+69.85%)
Mutual labels:  login, login-system
user login and register
user login and register system in django
Stars: ✭ 43 (-68.38%)
Mutual labels:  login, login-system
users-service
A small microservice for managing user registrations, password changes and issue access tokens
Stars: ✭ 16 (-88.24%)
Mutual labels:  login, login-system
Confluent Kafka Go
Confluent's Apache Kafka Golang client
Stars: ✭ 3,047 (+2140.44%)
Mutual labels:  consumer, producer
Diskqueue
A thread-safe, multi-process(ish) persistent queue library for .Net and Mono
Stars: ✭ 66 (-51.47%)
Mutual labels:  queue, thread
amqpextra
Golang AMQP on steroids. Reliable connection. Publisher. Consumer.
Stars: ✭ 59 (-56.62%)
Mutual labels:  publisher, consumer
single-spa-login-example-with-npm-packages
⚡ Single-spa application example which imports registered applications from NPM packages 📦 and manages authentication features as login 🔐
Stars: ✭ 98 (-27.94%)
Mutual labels:  login, login-system
php-kafka-lib
PHP Kafka producer / consumer library with PHP Avro support, based on php-rdkafka
Stars: ✭ 38 (-72.06%)
Mutual labels:  consumer, producer
Mainthreadguard
💂 Tracking UIKit access on main thread
Stars: ✭ 53 (-61.03%)
Mutual labels:  queue, thread
spinach
Modern Redis task queue for Python 3
Stars: ✭ 46 (-66.18%)
Mutual labels:  queue, thread
Qmq
QMQ是去哪儿网内部广泛使用的消息中间件,自2012年诞生以来在去哪儿网所有业务场景中广泛的应用,包括跟交易息息相关的订单场景; 也包括报价搜索等高吞吐量场景。
Stars: ✭ 2,420 (+1679.41%)
Mutual labels:  consumer, producer
Sc
Common libraries and data structures for C.
Stars: ✭ 161 (+18.38%)
Mutual labels:  queue, thread
Kafka Go
Kafka library in Go
Stars: ✭ 4,200 (+2988.24%)
Mutual labels:  consumer, producer
logSys
PHP Secure, Advanced Login System
Stars: ✭ 80 (-41.18%)
Mutual labels:  login, login-system
rocketmq
RocketMQ client for go supportting producer and consumer.
Stars: ✭ 29 (-78.68%)
Mutual labels:  consumer, producer
grav-plugin-login
Grav Login Plugin
Stars: ✭ 40 (-70.59%)
Mutual labels:  login, login-system
pulsar-flex
Pulsar Flex is a modern Apache Pulsar client for Node.js, developed to be independent of C++.
Stars: ✭ 43 (-68.38%)
Mutual labels:  consumer, producer
Userfrosting
🍩 Modern PHP user login and management framework++.
Stars: ✭ 1,547 (+1037.5%)
Mutual labels:  login, login-system
Simpleue
PHP queue worker and consumer - Ready for AWS SQS, Redis, Beanstalkd and others.
Stars: ✭ 124 (-8.82%)
Mutual labels:  queue, consumer
frizzle
The magic message bus
Stars: ✭ 14 (-89.71%)
Mutual labels:  consumer, producer

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

  • 2018.09.28 : [Add functional option] Resolution selectable, Downloaded result html table representation
  • 2018.10.01 : [Minor Patch] Patching worker thread dead symptom when moving the browser during download, add resolution 1440p, 2160p(4k)
  • 2018.10.06 : [Patch] Prevent thread death due to websocket exception in walker thread after download, add REST API
  • 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
  • 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
  • 2020.02.10 : [Patch] Modifying so this will work behind HTTPS as well.
  • 2020.04.07 : [Patch] Audio only option for web-ui and REST call. Change username field type for compatiblity
  • 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.08.12 : [Patch] Added audio-mp3 option
  • 2020.11.13 : [Patch] Added docker optinal variable to support youtube-dl proxy
  • 2021.05.03 : [Patch] Fix random mkv or mp4 format when specifying resolution
  • 2021.12.09 : [Patch] Fix proxy setting bug
  • 2022.09.28 : [Patch] Clears URL input when submitting the form.
  • 2022.09.29 : [Patch] Check for updates essential packages on first startup container.

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].