--- - name: download binary become: true ansible.builtin.get_url: url: "{{ ytdl_dl_url }}" dest: /usr/local/bin/yt-dlp mode: "0750" - name: install packages become: true ansible.builtin.package: name: - ffmpeg - brotli - python3-mutagen state: present - name: ensure dir exists become: true ansible.builtin.file: path: "{{ ytdl_conf_dir }}" state: directory owner: root group: root mode: "0755" - name: template youtubedl video config become: true ansible.builtin.template: src: youtube.txt dest: "{{ ytdl_conf_dir }}/youtube.txt" owner: root group: root mode: "0644" notify: - systemctl daemon-reload when: ytdl_enable_video_download - name: template youtubedl podcast config become: true ansible.builtin.template: src: podcast.txt dest: "{{ ytdl_conf_dir }}/podcast.txt" owner: root group: root mode: "0644" notify: - systemctl daemon-reload when: ytdl_enable_podcast_download - name: template systemd services become: true ansible.builtin.template: src: "youtubedl.service.j2" dest: "/etc/systemd/system/youtubedl.service" owner: root group: root mode: "0644" notify: - systemctl daemon-reload when: ytdl_active - name: template youtubedl timer become: true ansible.builtin.template: src: "youtubedl.timer.j2" dest: "/etc/systemd/system/youtubedl.timer" owner: root group: root mode: "0644" notify: - systemctl daemon-reload when: ytdl_active - name: template youtube_mail.service.j2 become: true ansible.builtin.template: src: "youtubedl_mail.service.j2" dest: "/etc/systemd/system/youtubedl_mail.service" owner: root group: root mode: "0644" notify: - systemctl daemon-reload when: ytdl_active - name: systemctl enable timer units become: true ansible.builtin.systemd: name: "youtubedl.timer" enabled: true masked: false state: started notify: - systemctl daemon-reload when: ytdl_active - name: ensure youtubedl video config is absent become: true ansible.builtin.file: state: absent path: "{{ ytdl_conf_dir }}/youtube.txt" notify: - systemctl daemon-reload when: not ytdl_enable_video_download - name: ensure youtubedl podcast config is absent become: true ansible.builtin.file: state: absent path: "{{ ytdl_conf_dir }}/podcast.txt" notify: - systemctl daemon-reload when: not ytdl_enable_podcast_download ...