diff --git a/README.md b/README.md index 0ecd8143..e0c5b3c4 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,7 @@ Ansible config and a bunch of Docker containers. * [Virtual Desktop](https://github.com/RattyDAVE/docker-ubuntu-xrdp-mate-custom) - A virtual desktop running on your NAS. * [Wallabag](https://wallabag.org/) - Save and classify articles. Read them later. * [Watchtower](https://github.com/v2tec/watchtower) - Monitor your Docker containers and update them if a new version is available +* [YouTubeDL-Material](https://ytdl-org.github.io/youtube-dl) - Self-hosted YouTube downloader built on Material Design * [ZNC](https://wiki.znc.in/ZNC) - IRC bouncer to stay connected to favourite IRC networks and channels ## What This Could Do diff --git a/docs/applications/youtubedlmaterial.md b/docs/applications/youtubedlmaterial.md new file mode 100644 index 00000000..ca499a88 --- /dev/null +++ b/docs/applications/youtubedlmaterial.md @@ -0,0 +1,18 @@ + +# YouTubeDL-Material + +Homepage: [https://ytdl-org.github.io/youtube-dl/](https://ytdl-org.github.io/youtube-dl/) +Docker Container: [https://github.com/Tzahi12345/YoutubeDL-Material](https://github.com/Tzahi12345/YoutubeDL-Material) + +YoutubeDL-Material is a Material Design frontend for youtube-dl. It's coded using Angular 9 for the frontend, and Node.js on the backend. + +## Usage + +Set `youtubedlmaterial_enabled: true` in your `inventories//nas.yml` file. + +The YouTubeDL-Material web interface can be found at http://ansible_nas_host_or_ip:8998. + +## Specific Configuration + +A YouTube directory will be created in your configured downloads spot. YouTubeDL-Material downloads will be placed there. +You can change the download location via `inventories//nas.yml` file. diff --git a/docs/configuration/application_ports.md b/docs/configuration/application_ports.md index c970e5a0..b5b5e581 100644 --- a/docs/configuration/application_ports.md +++ b/docs/configuration/application_ports.md @@ -63,4 +63,5 @@ By default, applications can be found on the ports listed below. | Ubooquity | 2202 | | | Ubooquity | 2203 | Admin | | Wallabag | 7780 | | +| YouTubeDL-Mater | 8998 | HTTP | | ZNC | 6677 | | diff --git a/group_vars/all.yml b/group_vars/all.yml index ac5eb0ca..158518d3 100644 --- a/group_vars/all.yml +++ b/group_vars/all.yml @@ -38,6 +38,7 @@ emby_enabled: false bazarr_enabled: false ombi_enabled: false lidarr_enabled: false +youtubedlmaterial_enabled: false # Music airsonic_enabled: false @@ -521,6 +522,16 @@ lidarr_user_id: "0" lidarr_group_id: "0" lidarr_port: "8686" +### +### YouTubeDL-Material +### +youtubedlmaterial_available_externally: "false" +youtubedlmaterial_data_directory: "{{ docker_home }}/youtubedlmaterial" +youtubedlmaterial_dl_audio_directory: "{{ downloads_root }}/complete/youtube/audio" +youtubedlmaterial_dl_video_directory: "{{ downloads_root }}/complete/youtube/video" +youtubedlmaterial_dl_subscriptions_directory: "{{ downloads_root }}/complete/youtube/subscriptions" +youtubedlmaterial_port_http: "8998" + ### ### Couchpotato ### diff --git a/nas.yml b/nas.yml index d4df13d4..c51cac75 100644 --- a/nas.yml +++ b/nas.yml @@ -224,6 +224,10 @@ when: (lidarr_enabled | default(False)) tags: lidarr + - import_tasks: tasks/youtubedlmaterial.yml + when: (youtubedlmaterial_enabled | default(False)) + tags: youtubedlmaterial + - import_tasks: tasks/serposcope.yml when: (serposcope_enabled | default(False)) tags: serposcope diff --git a/tasks/youtubedlmaterial.yml b/tasks/youtubedlmaterial.yml new file mode 100644 index 00000000..a7ffdc5a --- /dev/null +++ b/tasks/youtubedlmaterial.yml @@ -0,0 +1,37 @@ + +--- +- name: YouTubeDL-Material Directory + file: + path: "{{ item }}" + state: directory + with_items: + - "{{ youtubedlmaterial_data_directory }}/appdata" + - "{{ youtubedlmaterial_data_directory }}/audio" + - "{{ youtubedlmaterial_data_directory }}/video" + - "{{ youtubedlmaterial_data_directory }}/subscriptions" + - "{{ youtubedlmaterial_dl_audio_directory }}" + - "{{ youtubedlmaterial_dl_video_directory }}" + - "{{ youtubedlmaterial_dl_subscriptions_directory }}" + +- name: YouTubeDL-Material Docker Container + docker_container: + name: youtubedlmaterial + image: tzahi12345/youtubedl-material:latest + pull: true + volumes: + - "{{ youtubedlmaterial_data_directory }}/appdata:/app/appdata:rw" + - "{{ youtubedlmaterial_dl_audio_directory }}:/app/audio:rw" + - "{{ youtubedlmaterial_dl_video_directory }}:/app/video:rw" + - "{{ youtubedlmaterial_dl_subscriptions_directory }}:/app/subscriptions:rw" + ports: + - "{{ youtubedlmaterial_port_http }}:17442" + env: + ALLOW_CONFIG_MUTATIONS: "true" + TZ: "{{ ansible_nas_timezone }}" + restart_policy: always + labels: + traefik.backend: "youtubedlmaterial" + traefik.frontend.rule: "Host:youtubedlmaterial.{{ ansible_nas_domain }}" + traefik.enable: "{{ youtubedlmaterial_available_externally }}" + traefik.port: "17442" + memory: 1g diff --git a/templates/traefik/traefik.toml b/templates/traefik/traefik.toml index 4399467a..b75910bd 100644 --- a/templates/traefik/traefik.toml +++ b/templates/traefik/traefik.toml @@ -220,4 +220,5 @@ onDemand = false # create certificate when container is created "transmission-openvpn.{{ ansible_nas_domain }}", "ubooquity.{{ ansible_nas_domain }}", "wallabag.{{ ansible_nas_domain }}", + "youtubedlmaterial.{{ ansible_nas_domain }}", "znc.{{ ansible_nas_domain }}"]