All Projects → manbearwiz → Youtube Dl Server

manbearwiz / Youtube Dl Server

Licence: mit
Web / REST interface for downloading youtube videos onto a server.

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Youtube Dl Server

youtube-downloader-python
You can download the YouTube video for free and convert it to any extension you want.
Stars: ✭ 20 (-95.99%)
Mutual labels:  youtube-dl, videos
Youtube Local
browser-based client for watching Youtube anonymously and with greater page performance
Stars: ✭ 112 (-77.56%)
Mutual labels:  videos, youtube-dl
Xmysql
xmysql is now https://github.com/nocodb/nocodb
Stars: ✭ 54 (-89.18%)
Mutual labels:  rest-api
Dj Rest Auth
Authentication for Django Rest Framework
Stars: ✭ 491 (-1.6%)
Mutual labels:  rest-api
Get It
A macOS GUI for youtube-dl
Stars: ✭ 483 (-3.21%)
Mutual labels:  youtube-dl
Rest Api With Lumen
Rest API boilerplate for Lumen micro-framework.
Stars: ✭ 464 (-7.01%)
Mutual labels:  rest-api
V8 Archive
Directus Database API — Wraps Custom SQL Databases with a REST/GraphQL API
Stars: ✭ 486 (-2.61%)
Mutual labels:  rest-api
Service Pattern Go
Simple clean Go REST API architecture with dependency injection and mocking example, following SOLID principles.
Stars: ✭ 449 (-10.02%)
Mutual labels:  rest-api
Networking
⚡️ Elegantly connect to a REST JSON Api. URLSession + Combine + Decodable + Generics = <3
Stars: ✭ 499 (+0%)
Mutual labels:  rest-api
Vuetify Admin Dashboard
A Crud Admin panel made from Vue js and Vuetify
Stars: ✭ 481 (-3.61%)
Mutual labels:  rest-api
Datafire
A framework for building integrations and APIs
Stars: ✭ 487 (-2.4%)
Mutual labels:  rest-api
Youtube Downloader
👍 A much faster alternative to youtube-dl built for PHP applications. Working as of 2021-02-27
Stars: ✭ 474 (-5.01%)
Mutual labels:  youtube-dl
Libhttpserver
C++ library for creating an embedded Rest HTTP server (and more)
Stars: ✭ 464 (-7.01%)
Mutual labels:  rest-api
Glass Isc Dhcp
Glass - ISC DHCP Server Interface
Stars: ✭ 486 (-2.61%)
Mutual labels:  rest-api
Rsql Parser
Parser for RSQL / FIQL – query language for RESTful APIs
Stars: ✭ 463 (-7.21%)
Mutual labels:  rest-api
Mern Crud
A simple records system using MongoDB, Express.js, React.js, and Node.js with real-time CRUD operations using Socket.io
Stars: ✭ 493 (-1.2%)
Mutual labels:  rest-api
Speech Demo
语音api示例
Stars: ✭ 454 (-9.02%)
Mutual labels:  rest-api
Resgate
A Realtime API Gateway used with NATS to build REST, real time, and RPC APIs, where all your clients are synchronized seamlessly.
Stars: ✭ 473 (-5.21%)
Mutual labels:  rest-api
Cerberus
A demonstration of a completely stateless and RESTful token-based authorization system using JSON Web Tokens (JWT) and Spring Security.
Stars: ✭ 482 (-3.41%)
Mutual labels:  rest-api
Termplay
GitLab: https://gitlab.com/jD91mZM2/termplay
Stars: ✭ 500 (+0.2%)
Mutual labels:  youtube-dl

Docker Stars Shield Docker Pulls Shield GitHub license

youtube-dl-server

Very spartan Web and REST interface for downloading youtube videos onto a server. starlette + youtube-dl.

screenshot

Running

Docker CLI

This example uses the docker run command to create the container to run the app. Here we also use host networking for simplicity. Also note the -v argument. This directory will be used to output the resulting videos

docker run -d --net="host" --name youtube-dl -v /home/core/youtube-dl:/youtube-dl kmb32123/youtube-dl-server

Docker Compose

This is an example service definition that could be put in docker-compose.yml. This service uses a VPN client container for its networking.

  youtube-dl:
    image: "kmb32123/youtube-dl-server"
    network_mode: "service:vpn"
    volumes:
      - /home/core/youtube-dl:/youtube-dl
    restart: always

Python

If you have python ^3.6.0 installed in your PATH you can simply run like this, providing optional environment variable overrides inline.

YDL_SERVER_PORT=8123 YDL_UPDATE_TIME=False python3 -u ./youtube-dl-server.py

In this example, YDL_UPDATE_TIME=False is the same as the command line option --no-mtime.

Usage

Start a download remotely

Downloads can be triggered by supplying the {{url}} of the requested video through the Web UI or through the REST interface via curl, etc.

HTML

Just navigate to http://{{host}}:8080/youtube-dl and enter the requested {{url}}.

Curl

curl -X POST --data-urlencode "url={{url}}" http://{{host}}:8080/youtube-dl/q

Fetch

fetch(`http://${host}:8080/youtube-dl/q`, {
  method: "POST",
  body: new URLSearchParams({
    url: url,
    format: "bestvideo"
  }),
});

Bookmarklet

Add the following bookmarklet to your bookmark bar so you can conviently send the current page url to your youtube-dl-server instance.

javascript:!function(){fetch("http://${host}:8080/youtube-dl/q",{body:new URLSearchParams({url:window.location.href,format:"bestvideo"}),method:"POST"})}();

Implementation

The server uses starlette for the web framework and youtube-dl to handle the downloading. The integration with youtube-dl makes use of their python api.

This docker image is based on python:alpine and consequently alpine:3.8.

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].