Hi @robb1 try version 3 and later, there is no need to do path modification yourself.
Update for N-R would be:
- make sure all input_* (HA -> Configuration -> Helpers) been set.
- parse the latest N-R content.
Now I’m publishing version 4, which contains the ID3 metadata in mp3 file with image, the media player box will have the image inside the mp3 file.
Version 4
Feature
- The media player now receives the ID3 info of an mp3 file.
- Media player box on Lovelace is now good-looking.
- Media player has background if media file contains image.
Steps
- Upgrading from version 3, just replace the N-R code.
- Modify the “PLAYLIST mapping” as version 3.
- For version 4, there are msg.album_cover_temp_file and msg.album_cover_temp_url need to be set in “PLAYLIST mapping”, don’t worry, there are pre-set as dummy content for understanding.
N-R
[{"id":"13ac7585.18210a","type":"tab","label":"media player","disabled":false,"info":""},{"id":"58ff70b9.a6b58","type":"random-item","z":"13ac7585.18210a","name":"","input":"payload","inputType":"msg","output":"payload","outputType":"msg","number":1,"x":730,"y":80,"wires":[["143859dc.b68516"]]},{"id":"a1220b1d.bf98d8","type":"api-call-service","z":"13ac7585.18210a","name":"","server":"f25fc2a7.50d81","version":1,"debugenabled":false,"service_domain":"media_player","service":"play_media","entityId":"media_player.home_group","data":"post_data","dataType":"jsonata","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":890,"y":600,"wires":[[]]},{"id":"143859dc.b68516","type":"function","z":"13ac7585.18210a","name":"deal with url","func":"file_name = msg.payload;\nsong_title = file_name.replace(\".mp3\",\"\")\nmsg.filename = msg.playlist_path + file_name;\nfile_name = msg.playlist_path.replace(\"/config/\",\"/media/\")\n + file_name;\nmsg.file_name = msg.payload;\nmsg.song_title = song_title;\nmsg.post_data = {\"media_content_id\":file_name,\"media_content_type\":\"audio/mp3\"}\nmsg.post_data[\"extra\"] ={\"metadata\": {\"metadataType\":3,\"title\":song_title}}\nglobal.set(\"hohoFavoriteSong\",msg);\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":910,"y":80,"wires":[["b4a41b7a.44c238"]]},{"id":"3c129312.d5241c","type":"server-state-changed","z":"13ac7585.18210a","name":"media player device","server":"f25fc2a7.50d81","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"media_player.home_group","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"idle","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":140,"y":280,"wires":[["f4ccfdb9.d779d"],["3c06a1df.f5ea0e"]]},{"id":"f4ccfdb9.d779d","type":"api-current-state","z":"13ac7585.18210a","name":"Check music time button state","server":"f25fc2a7.50d81","version":1,"outputs":2,"halt_if":"on","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"input_boolean.music_time","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":170,"y":180,"wires":[["d0b8c29b.4f194"],[]]},{"id":"49b79303.897c5c","type":"server-state-changed","z":"13ac7585.18210a","name":"music time button state","server":"f25fc2a7.50d81","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.music_time","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"on","halt_if_type":"str","halt_if_compare":"is","outputs":2,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":150,"y":340,"wires":[["d0b8c29b.4f194"],["52d23ddf.ff4954"]]},{"id":"52d23ddf.ff4954","type":"api-call-service","z":"13ac7585.18210a","name":"","server":"f25fc2a7.50d81","version":1,"debugenabled":false,"service_domain":"media_player","service":"turn_off","entityId":"media_player.home_group","data":"","dataType":"jsonata","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":880,"y":660,"wires":[[]]},{"id":"3c06a1df.f5ea0e","type":"switch","z":"13ac7585.18210a","name":"device state","property":"payload","propertyType":"msg","rules":[{"t":"eq","v":"paused","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":410,"y":240,"wires":[["d0b8c29b.4f194"],["a232d975.043968"]]},{"id":"a232d975.043968","type":"api-call-service","z":"13ac7585.18210a","name":"off music","server":"f25fc2a7.50d81","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_off","entityId":"input_boolean.music_time","data":"","dataType":"jsonata","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":820,"y":720,"wires":[[]]},{"id":"d0b8c29b.4f194","type":"api-current-state","z":"13ac7585.18210a","name":"load playlist","server":"f25fc2a7.50d81","version":1,"outputs":1,"halt_if":"","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"input_select.music_playlist","state_type":"str","state_location":"payload","override_payload":"msg","entity_location":"data","override_data":"msg","blockInputOverrides":false,"x":130,"y":100,"wires":[["40412deb.dc30c4"]]},{"id":"51c126bf.dcea28","type":"server-state-changed","z":"13ac7585.18210a","name":"favorite song button state","server":"f25fc2a7.50d81","version":1,"exposeToHomeAssistant":false,"haConfig":[{"property":"name","value":""},{"property":"icon","value":""}],"entityidfilter":"input_boolean.favorite_song","entityidfiltertype":"exact","outputinitially":false,"state_type":"str","haltifstate":"","halt_if_type":"str","halt_if_compare":"is","outputs":1,"output_only_on_state_change":true,"for":0,"forType":"num","forUnits":"minutes","ignorePrevStateNull":false,"ignorePrevStateUnknown":false,"ignorePrevStateUnavailable":false,"ignoreCurrentStateUnknown":false,"ignoreCurrentStateUnavailable":false,"x":170,"y":440,"wires":[["89eb5dc0.898a2"]]},{"id":"89eb5dc0.898a2","type":"function","z":"13ac7585.18210a","name":"check","func":"\nvar data = global.get(\"hohoFavoriteSong\");\nif (data === undefined ||data === null ){\n return [null,null];\n}\ndata.set_fav = msg.payload;\nreturn [data,null];","outputs":2,"noerr":0,"initialize":"","finalize":"","x":110,"y":500,"wires":[["44dc0761.893fd8"],[]]},{"id":"3187d62c.ad0c5a","type":"fs-ops-dir","z":"13ac7585.18210a","name":"mp3 folder","path":"playlist_path","pathType":"msg","filter":"*.mp3","filterType":"str","dir":"payload","dirType":"msg","x":530,"y":100,"wires":[["58ff70b9.a6b58"]]},{"id":"40412deb.dc30c4","type":"function","z":"13ac7585.18210a","name":"PLAYLIST mapping","func":"playlist_mapping = {\n \"Mp3\":\"/config/media/mp3/\",\n \"My Favorite\":\"/config/media/favorite_mp3/\",\n};\nmsg.album_cover_temp_file = \"/config/www/album_cover_temp.jpg\";\nmsg.album_cover_temp_url = \"https://[YOUR HA DOMAIN]/local/album_cover_temp.jpg?\" + Math.random();\n\n\n//msg.album_cover_temp_file = \"/config/media/album_cover_temp.jpg\";\nmsg.playlist_mapping = playlist_mapping;\npath = playlist_mapping[msg.payload];\nmsg.playlist_path = path;\nmsg.playlist_name = msg.payload;\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":330,"y":100,"wires":[["3187d62c.ad0c5a"]]},{"id":"7b2ec18b.535d5","type":"fs-ops-access","z":"13ac7585.18210a","name":"is fav file exists","path":"playlist_mapping[\"My Favorite\"]","pathType":"msg","filename":"file_name","filenameType":"msg","read":true,"write":false,"throwerror":false,"x":640,"y":480,"wires":[["57cfe80c.d29f58"],["dde1a78a.b45c58"]]},{"id":"57cfe80c.d29f58","type":"api-call-service","z":"13ac7585.18210a","name":"fav button on","server":"f25fc2a7.50d81","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_on","entityId":"input_boolean.favorite_song","data":"","dataType":"jsonata","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":830,"y":460,"wires":[["a1220b1d.bf98d8"]]},{"id":"dde1a78a.b45c58","type":"api-call-service","z":"13ac7585.18210a","name":"fav button on","server":"f25fc2a7.50d81","version":1,"debugenabled":false,"service_domain":"input_boolean","service":"turn_off","entityId":"input_boolean.favorite_song","data":"","dataType":"jsonata","mergecontext":"","output_location":"","output_location_type":"none","mustacheAltTags":false,"x":830,"y":520,"wires":[["a1220b1d.bf98d8"]]},{"id":"44dc0761.893fd8","type":"api-current-state","z":"13ac7585.18210a","name":"only playing","server":"f25fc2a7.50d81","version":1,"outputs":2,"halt_if":"playing","halt_if_type":"str","halt_if_compare":"is","override_topic":false,"entity_id":"media_player.home_group","state_type":"str","state_location":"media_state","override_payload":"msg","entity_location":"media_data","override_data":"msg","blockInputOverrides":false,"x":270,"y":500,"wires":[["bf0b29c2.989458"],[]]},{"id":"b794607c.368ff","type":"fs-ops-delete","z":"13ac7585.18210a","name":"","path":"playlist_mapping[\"My Favorite\"]","pathType":"msg","filename":"file_name","filenameType":"msg","x":490,"y":620,"wires":[[]]},{"id":"bf0b29c2.989458","type":"switch","z":"13ac7585.18210a","name":"copy or delete","property":"set_fav","propertyType":"msg","rules":[{"t":"eq","v":"on","vt":"str"},{"t":"eq","v":"off","vt":"str"}],"checkall":"true","repair":false,"outputs":2,"x":140,"y":580,"wires":[["63d31658.fd04a8"],["c4f81d55.595be"]]},{"id":"63d31658.fd04a8","type":"fs-ops-access","z":"13ac7585.18210a","name":"is fav file exists","path":"playlist_mapping[\"My Favorite\"]","pathType":"msg","filename":"file_name","filenameType":"msg","read":true,"write":false,"throwerror":false,"x":320,"y":560,"wires":[[],["9128b2f4.04a31"]]},{"id":"9128b2f4.04a31","type":"fs-ops-copy","z":"13ac7585.18210a","name":"copy to fav folder","sourcePath":"playlist_path","sourcePathType":"msg","sourceFilename":"file_name","sourceFilenameType":"msg","destPath":"playlist_mapping[\"My Favorite\"]","destPathType":"msg","destFilename":"file_name","destFilenameType":"msg","link":false,"overwrite":true,"x":510,"y":560,"wires":[[]]},{"id":"c4f81d55.595be","type":"fs-ops-access","z":"13ac7585.18210a","name":"is fav file exists","path":"playlist_mapping[\"My Favorite\"]","pathType":"msg","filename":"file_name","filenameType":"msg","read":true,"write":false,"throwerror":false,"x":320,"y":620,"wires":[["b794607c.368ff"],[]]},{"id":"b4a41b7a.44c238","type":"get media tags","z":"13ac7585.18210a","name":"","filename":"","x":1100,"y":80,"wires":[["45a93ed0.bd55a"]]},{"id":"45a93ed0.bd55a","type":"function","z":"13ac7585.18210a","name":"","func":"if (msg.payload != undefined && msg.payload.error != undefined){\n return msg;\n}\nmetadata = msg.post_data[\"extra\"][\"metadata\"];\nif (msg.payload.tags != undefined){\n tags = msg.payload.tags;\n if (tags.title != undefined)\n metadata['title'] = tags.title;\n \n if (tags.artist != undefined)\n metadata['artist'] = tags.artist;\n \n if (tags.album != undefined)\n metadata['albumName'] = tags.album;\n \n if (tags.track != undefined)\n metadata['trackNumber'] = tags.track;\n \n if (tags.year != undefined)\n metadata['releaseDate'] = tags.year;\n \n if (tags.picture != undefined){\n msg.image = \"yes\";\n msg.payload = new Buffer(tags.picture.data);\n msg.filename = msg.album_cover_temp_file;\n metadata['images'] = [{\"url\":msg.album_cover_temp_url}];\n }\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":720,"y":160,"wires":[["772e70e0.a6915"]]},{"id":"772e70e0.a6915","type":"switch","z":"13ac7585.18210a","name":"","property":"image","propertyType":"msg","rules":[{"t":"nnull"},{"t":"else"}],"checkall":"true","repair":false,"outputs":2,"x":850,"y":160,"wires":[["a0d08060.d0d02"],["7b2ec18b.535d5"]]},{"id":"a0d08060.d0d02","type":"file","z":"13ac7585.18210a","name":"","filename":"","appendNewline":false,"createDir":true,"overwriteFile":"true","encoding":"none","x":1010,"y":160,"wires":[["7b2ec18b.535d5"]]},{"id":"f25fc2a7.50d81","type":"server","name":"Home Assistant"}]