diff --git a/music.yml b/music.yml index 3220636..64676ee 100644 --- a/music.yml +++ b/music.yml @@ -2,7 +2,7 @@ - hosts: all become: yes tasks: - - name: Install and configure Funkwhale, deezloader and beets + - name: Install and configure Funkwhale, deemix and beets include_role: name: music tasks_from: main diff --git a/roles/music/tasks/download_music.yml b/roles/music/tasks/download_music.yml index 88c32be..b8f3116 100644 --- a/roles/music/tasks/download_music.yml +++ b/roles/music/tasks/download_music.yml @@ -1,7 +1,15 @@ -- name: Update deezloader configuration file +- name: Update deemix configuration file template: - src: deezloader_settings.ini.j2 - dest: "{{ deezloader_folder_path }}/setting.ini" + src: deemix_config.json.j2 + dest: "{{ deemix_folder_path }}/config/config.json" + owner: "{{ base_user_name }}" + group: "{{ base_user_name }}" + mode: 0644 + +- name: Update ARL token file + template: + src: arl.j2 + dest: "{{ deemix_folder_path }}/config/.arl" owner: "{{ base_user_name }}" group: "{{ base_user_name }}" mode: 0644 @@ -11,11 +19,11 @@ become: yes become_user: "{{ base_user_name }}" shell: - cmd: "deez-dw.py --recursive_download True --recursive_quality True --output {{ deezloader_songs_path }} --not_gui False --link {{ item }}" - chdir: "{{ deezloader_folder_path }}" + cmd: "deemix --portable -p {{ deemix_songs_path }} {{ item }}" + chdir: "{{ deemix_folder_path }}" with_items: "{{ lookup('file', 'files/albums.txt').splitlines() }}" - register: output_deezloader + register: output_deemix - name: Show download state debug: - msg: "{{ output_deezloader }}" + msg: "{{ output_deemix }}" diff --git a/roles/music/tasks/import_music.yml b/roles/music/tasks/import_music.yml index 96efce3..4b20946 100644 --- a/roles/music/tasks/import_music.yml +++ b/roles/music/tasks/import_music.yml @@ -21,7 +21,7 @@ shell: # Quiet mode = do not ask anything to the user # Default are in configuration file - cmd: "beet -c {{ beets_config_folder }}/config.yaml import -q {{ deezloader_songs_path }}" + cmd: "beet -c {{ beets_config_folder }}/config.yaml import -q {{ deemix_songs_path }}" - name: Import music into Funkwhale shell: diff --git a/roles/music/tasks/main.yml b/roles/music/tasks/main.yml index b1ae08d..3d38385 100644 --- a/roles/music/tasks/main.yml +++ b/roles/music/tasks/main.yml @@ -1,15 +1,15 @@ --- -- name: Install deezloader and beets +- name: Install deemix and beets pip: name: "{{ item }}" state: present loop: - - deezloader + - deemix - beets - pexpect - pylast -- name: Create deezloader and beets directories +- name: Create deemix and beets directories file: path: "{{ item }}" state: directory @@ -18,8 +18,9 @@ mode: 0755 recurse: yes loop: - - "{{ deezloader_folder_path }}" - - "{{ deezloader_songs_path }}" + - "{{ deemix_folder_path }}" + - "{{ deemix_folder_path }}/config" + - "{{ deemix_songs_path }}" - "{{ beets_config_folder }}" - name: Create Funkwhale directory diff --git a/roles/music/templates/arl.j2 b/roles/music/templates/arl.j2 new file mode 100644 index 0000000..43fe400 --- /dev/null +++ b/roles/music/templates/arl.j2 @@ -0,0 +1 @@ +{{ arl_deezer_token }} diff --git a/roles/music/templates/deemix_config.json.j2 b/roles/music/templates/deemix_config.json.j2 new file mode 100644 index 0000000..b66fc96 --- /dev/null +++ b/roles/music/templates/deemix_config.json.j2 @@ -0,0 +1,78 @@ +{ + "downloadLocation": "{{ deemix_songs_path }}", + "tracknameTemplate": "%artist% - %title%", + "albumTracknameTemplate": "%tracknumber% - %title%", + "playlistTracknameTemplate": "%position% - %artist% - %title%", + "createPlaylistFolder": true, + "playlistNameTemplate": "%playlist%", + "createArtistFolder": false, + "artistNameTemplate": "%artist%", + "createAlbumFolder": true, + "albumNameTemplate": "%artist% - %album%", + "createCDFolder": true, + "createStructurePlaylist": false, + "createSingleFolder": false, + "padTracks": true, + "paddingSize": "0", + "illegalCharacterReplacer": "_", + "queueConcurrency": 3, + "maxBitrate": "3", + "fallbackBitrate": true, + "fallbackSearch": false, + "logErrors": true, + "logSearched": false, + "overwriteFile": "n", + "createM3U8File": false, + "playlistFilenameTemplate": "playlist", + "syncedLyrics": false, + "embeddedArtworkSize": 800, + "embeddedArtworkPNG": false, + "localArtworkSize": 1400, + "localArtworkFormat": "jpg", + "saveArtwork": true, + "coverImageTemplate": "cover", + "saveArtworkArtist": false, + "artistImageTemplate": "folder", + "jpegImageQuality": 80, + "dateFormat": "Y-M-D", + "albumVariousArtists": true, + "removeAlbumVersion": false, + "removeDuplicateArtists": false, + "featuredToTitle": "0", + "titleCasing": "nothing", + "artistCasing": "nothing", + "executeCommand": "", + "tags": { + "title": true, + "artist": true, + "album": true, + "cover": true, + "trackNumber": true, + "trackTotal": false, + "discNumber": true, + "discTotal": false, + "albumArtist": true, + "genre": true, + "year": true, + "date": true, + "explicit": false, + "isrc": true, + "length": true, + "barcode": true, + "bpm": true, + "replayGain": false, + "label": true, + "lyrics": false, + "syncedLyrics": false, + "copyright": false, + "composer": false, + "involvedPeople": false, + "source": false, + "rating": false, + "savePlaylistAsCompilation": false, + "useNullSeparator": false, + "saveID3v1": true, + "multiArtistSeparator": "default", + "singleAlbumArtist": false, + "coverDescriptionUTF8": false + } diff --git a/roles/music/templates/deezloader_settings.ini.j2 b/roles/music/templates/deezloader_settings.ini.j2 deleted file mode 100644 index 8fcd6e1..0000000 --- a/roles/music/templates/deezloader_settings.ini.j2 +++ /dev/null @@ -1,2 +0,0 @@ -[login] -token = {{ arl_deezer_token }} diff --git a/roles/music/vars/main.yml b/roles/music/vars/main.yml index e78e301..a673546 100644 --- a/roles/music/vars/main.yml +++ b/roles/music/vars/main.yml @@ -10,7 +10,7 @@ funkwhale_subdomain: music nginx_max_body_size: 100M postgres_version: 13 redis_version: 6 -deezloader_folder_path: /home/{{ base_user_name }}/deezloader -deezloader_songs_path: "{{ deezloader_folder_path }}/songs" +deemix_folder_path: /home/{{ base_user_name }}/deemix +deemix_songs_path: "{{ deemix_folder_path }}/songs" beets_config_folder: "/home/{{ base_user_name }}/.config/beets" beets_log_file: "/var/log/beets.log"