.M3U spotify - to local

Mp3tag can not solve this problem for you.

Theoretically, you could read all your existing songs from your local hard disk into a first array.
Then you would read all your song names from your M3U into a second array.

Then its just a loop with "find song name from second array if it exists in first array".
If yes, you also get the full file path to your song.
Write this match into a new M3U text file.

This only works, if your example song name 3T - Anything.mp3 only exists once on your HDD.
As soon as it exists more then once (Original album, Remastered album, Best of, Sampler) then it is not possible to detect which path would be the "correct" one.

Perhaps this is a way to grind it out:
My idea: as the playlist does not contain the path, the files have to moved (temporarily) to a single folder and then the playlist can be applied. And with that information, the files could be moved back to the original location and a local playlist can be created. These would be the steps:

  • Load all files into MP3tag.
  • Select all the files
  • Create a user-defined field to store the original path:
    Format value for (e.g.) OLD_PATH
    Format string: %_path%
  • Move all the files to a single folder.
    Use Convert>Tag-Filename
    Format string: E:\playlist_temp\%_filename%
  • Make E:\playlist_temp\ the working directory
  • Drag&drop the Spotify playlist into MP3tag.
    Hopefully, MP3tag now loads all the files from the playlist
  • Select all the files
  • Now move all files back to the original location:
    Convert>Tag-Filename
    Format string: %old_path%
  • Select all files (if necessary)
  • Create a new playlist
  • Load that playlist into iTunes and see whether it works.

Once the process is over, you can delete the field OLD_PATH

... it could be that not all the files were addressed by the Spotify playlist. These would remain in the folder E:\playlist_temp\. To restore your old file structure, you would have to load E:\playlist_temp\ again an move the files back to the original location as described above.

Good idea @ohrenkino

This also only works if every song only exists once with the same name.
If you move the same 3T - Anything.mp3 more then once to the same single folder, you overwrite it. In the worst case, you overwrite a bigger/better version with a lower quality file with the same name.

this is a good idea, would i be best to load my whole directory and see if mp3tag could match by file name, i would have to change the mp3 to m4a, but would that work

That is not the mechanism.
You have to move all the files of your collection to a single folder as the playlist only contains the filename but no path information.
Also move the playlist to this single folder.
Then open the playlist with MP3tag in this folder and the playlist will make MP3tag load (only) the referenced files.

So just to clarify I would need to get all the songs from the liked list into one folder, not place the m3u list into the main directory

As my directories are set out as A B C and inside is artists name the date and album, if it means I need to get all the songs together I may just have to slog it out

I think I layed out the procedure.

And yes: the 4th bullet point says that you have to move all the files to a single (flat) folder. Before that you stored the original path in a user-defined tag field so that afterwards each file can (and will) be moved back to its orginal folder.

The single folder with no subfolders makes the playlist work which also does not have any path information.
Once you have loaded the playlist and the files show up, you move the now loaded files back again to the (stored) original path.
MP3tag now knows 2 things:
That the file is member of the playlist as the file has been loaded and what the original path is.
With this information you create a new playlist which has the (relative) path as part of the file reference and that playlist should make iTunes also play the tracks.