Welcome to Tesla Motors Club
Discuss Tesla's Model S, Model 3, Model X, Model Y, Cybertruck, Roadster and More.
Register

How To: Export iTunes Songs and Playlists to Tesla Model S USB Music Player

This site may earn commission on affiliate links.
Picked up my Tesla Model S P85D 2 weeks ago. Wow! This is one amazing car. No more ICE for me! :) One thing I had to figure out is the music player though. My first impression was more than excellent as it can play internet radio (Slacker and TuneIn)! This works great for me as I can now listen to Dutch radio stations in my car (I live in CA).

However, when I then decided I wanted to listen to some of my own music, stored on my iPhone, reality sunk in... The Model S doesn’t support Apple’s iPod music USB interface. Of course you can listen through Bluetooth, however it forces you to use your phone to select songs (not recommended while driving) and compromises sound quality also.

What gives?

Obviously, storing my music on a USB stick was the way to go. I’d never used a USB stick in any of my cars before though so started browsing the internet (TeslaMotorsClub.com!) to find the best way. I quickly found out there are quite a few “gotchas” with Tesla’s implementation of the USB music player. The most important ones are:
1) No support for playlists
2) Albums becoming “fragmented” due to the Tesla player not using the “Album Artist” and “Compilation” tags to keep things organized like iTunes does.


Regarding the playlist support (or lack thereof), I really wanted some kind of workaround solution for that (until Tesla comes to senses and supports real playlists). I personally like to tag my favorite songs in iTunes with 4 or 5 stars and then listen to these “Top Rated” songs from a playlist, playing the songs in random order (luckily Tesla since recently supports Shuffle play). In a forum posting, I saw someone suggesting to mark your favorite songs by defining a unique “Genre” for them. As the Tesla Player can organize and play songs belonging to a certain Genre, I thought this was a great idea! Some “tweaking” is needed to go from the iTunes “stars rating” to a “Favorite” Genre in the Tesla Player however.

Regarding albums becoming “fragmented”, a good way to circumvent this is to make sure all songs on an album share one and the same artist name. Often, something like “Various Artists” is used if the Album contains a collection of songs performed by different artists. By appending the song names with the actual artist name for that specific song on the album, no information gets lost and the chance that the Tesla Player finds the correct Album Art image (it looks for those on the internet) may be higher. Also here, “tweaking” to get the songs from iTunes onto the USB with the right tags is needed.

As I converged on a good way to export songs from iTunes to the Tesla USB Player, I thought I’d summarize a “How To” here. Hope it’ll help someone!

  • Get yourself a USB Flash Drive. Like many on the forums, I like the low-profile form factor ones. I’m using a SanDIsk Cruzer Fit 64GB: http://www.sandisk.com/products/usb/drives/cruzer-fit/ as it’s big enough to store my entire personal music collection.
  • Download and install MP3Tag: http://www.mp3tag.de. This is what we will use to “reformat” the Tags from the way Apple iTunes uses them to something that works well for the Model S music player.
  • Launch iTunes, and:
    • Select to view “Playlists” (top menu bar in the iTunes window)
    • Set the view to display a list of Songs (Select “Songs” in the pulldown menu in the right upper corner).
    • Select your first playlist that you would like to “export” to the Tesla Model S
    • Display a column with the contents of the “Comments” tag by right-clicking on the column header row (showing “Name”, “Time”, “Artist”, etc.) and then selecting “Comments” from the pull-down menu.
    • Select all files in this Playlist (“Edit”->”Select All” from the menu). Then right-click on the selection and select “Get Info” from the pulldown menu
    • In the “comments” field, enter a description for your Playlist, e.g. “Top Rated”. (This will later become the “Genre” that can be selected in the Model S Player to play our favorite songs)
    • Press “OK” and wait for iTunes to do its thing
    • Repeat the above steps to add a Comment identifying other Playlists you would like to export. I use: “Recently Added”, “Recently Played” and “Top Rated”. (Note that each song can only end up in one Genre on the Model S player so you may have to select your preferred one in case a song is part of multiple playlists).
    • Quit iTunes
  • Copy the albums/songs you want to export to your Tesla from your "iTunes Media/music" folder (go to “Preferences””->”Advanced” in iTunes if you’re unsure about the location of your iTunes Media folder) to a temporary folder. (I use a folder named “Tesla” on the Desktop and simply copy the *entire* “music” folder into it). Make sure this temporary destination folder has enough space!
  • Launch MP3tag, and:
    • Choose File->Change Directory and select the temporary folder you created in step 4.
    • Right-click on the column header row and select the “Comments" tag for display
    • Look of and delete and music videos. These won’t play in the Model S and just take up space. Enter “.m4v” in the "Filter” box at the bottom of the window. Then select the files found, and right-click “delete”. Clear the “Filter” box to display the regular music files
    • Click “Actions”->”Actions” and create a new Action Group called “iTunes2Tesla”
    • Edit this group to enter the contents in the picture below (make sure it matches exactly). For the “Format value “GENRE” actions, use your chosen Playlist descriptions from Step 3.
    • Execute the iTunes2Tesla action on all files: Select all files and choose “Actions”->”iTunes2Tesla”
  • Format the USB flash drive and put a folder with a name representing today’s date in its root. The reason for doing this is that Model S caches the tags in the files (e.g. artist name, song title, etc.). It’ll only re-read a file’s tags if the path/filename changes. By putting the files in a root-foler, all it takes is changing this folder name to force the car to re-read the tags.
  • Copy files onto Flash Drive
  • Install in car and enjoy!

This works great. But of course Tesla cannot expect all their drivers to be computer literate. Having proper support for Playlist would still be better. Hope Tesla reads this and plans to release update media player software with Playlist support soon.

Hope this is helpful,

Gra55h0pper.


Screen Shot 2015-04-12 at 12.03.40 AM.png


 
I should mention the down-sides/compromise here as well:
1) As a song can only belong to 1 Genre, it can only belong to 1 playlist
2) The playlist order is lost. I always "shuffle" through my loyalist songs anyway, but I can imagine this is not an acceptable solution for some.

Hope Tesla will implement real Playlist support, as well as starts using the Compilation and Album Artist tags.

- - - Updated - - -

I used a USB but did not go to all the trouble you did. I had made folders of my favourite songs in itunes and copied them to my USB and the plugged it in the car USB port and started playing. I do not have your sophisticatde system but my way works fine for me.

Sure! That's how I did it at first also. The above is mostly for anyone being frustrated seeing albums becoming fragmented as well as seeing songs mentioned more than once.
 
Are you on a Mac? Did you see the other thread were this has been discussed a while? Easier workflows exist to do what your looking to do, and handle a couple of the limitations you were mentioning. Nothing wrong with doing it by hand, but I got tired of it and made an app for it (Mac only at the moment though) Tesla Tunes by tattwamasi
I deal with keeping playlist order in the folders as well as the genre mapping, making multiple copies as needed to allow different copies of the same song to be in different genres/playlists, etc.
Another member here also made an AppleScript to automate much of the above. Both my app and the script are discussed at Easy iTunes playlist syncing for Tesla USB flash drive

You can use smart playlists with mine to keep an updated list of your 3+ star or whatever songs in a playlist, then use the app to keep it and other selected playlist in sync to a USB fob or whatever. I suspect majorlance's script handles smart playlists too, though not positive.
Anyway, if you hadn't seen the other thread, may be of use to you. As I've updated my app I've posted there.
 
I've tried it and like it in general. Good stuff! It's great how it determines what changed between source and destination to determine what needs to be done.

However, what I don't like of the playlists-in-a-separate-folder workaround is that songs that are part of a playlist appear in the browser (e.g. under Albums) multiple times.

It just occurred to me: have you considered (an option for) removing the tags for all the files in the Playlists directories? I just tried it Using MP3tag and it the files still play fine, however as the tags are missing, they do not end up showing more than once in the regular browser (under Songs or Albums or Artists) as the same tag does not get read more than once when indexing.
 
The crappy thing is that it's all workarounds, and some of the workarounds conflict.
Will think about your suggestion. Would have to be another checkbox option, because removing tags will obviously screw up the song tag display if playing via "the genre hack". Would screw up display during play by folder too, except that it is helpfully already broken by Tesla....
The thing that bothered you bothered me too, but because I like to copy my whole library, then have a few playlists in addition. People who only listen via playlist (and genre hack) don't notice the issue.
 
Yeah, it'll unfortunately all be workarounds until Tesla implements some form of true playlist support. I was wondering what happens when a song only has its genre tag set? haven't gotten around to trying that as yet. With a little luck, it would only list it under Genres and ignore it for the other categories? Perhaps worth a try?
 
Also, it seems there may still be some bugs? When I look at the "Back to the Light" album below, Model S shows two Albums with this name due to the "unique" Artist for song 4 ("Brian May/Cozy Powell"). However, as the "Album Artist" is set to "Brian May", I would have expected TeslaTunes to set:
1) Title = Resurrection - Brian May/Cozy Powell
2) Artist = Brian May
...such that the album only appears once and has *all* songs (including #4) in it.

Capture.PNG
 
I think you are thinking I'm doing more than I have implemented the app to do.
I'm up for adding additional useful functionality, so long as it doesn't preclude other functionality, but just so I understand the comment…

Are you referring to a file converted to flac? I don't change any tags for files I just copy over (except for the genre change, if selected, for playlists). However, in the case where I'm converting Apple lossless to FLAC, I tried to follow what I saw being done in other converters, namely Sbooth's MAX:
From my code:
Code:
    // Artist -- TODO:  should album artist really override artist?? Seems odd - think I'm conforming to the way sbooth's Max does it.  Investigate.
    if(tags->albumArtist)
        addVorbisCommentIfExists(vorb, "ARTIST", tags->albumArtist);
    else if(tags->artist)
        addVorbisCommentIfExists(vorb, "ARTIST",tags->artist);
So I think in that situation (the only one where I actually touch the tag, currently) it's doing what you expect - but I think that's because FLAC didn't let me keep both tags

I also don't change the titles, ever, and only change the filenames in the case of playlist folders, to preserve order and make the filenames unique.
 
Did you actually read my opening post then? Yes, based on your response, I sort of expected your program would address both issues I raised in some way:

1) No support for playlists
2) Albums becoming “fragmented” due to the Tesla player not using the “Album Artist” and “Compilation” tags to keep things organized like iTunes does.

If you look at the MP3tag actions I posted, you can see that the first two actions address problem #2. This way of fixing the "albums becoming fragmented" issue has been suggested by others also and it works great for me.

i do not have any lossless or flac files.

- - - Updated - - -

If it helps, in pseudocode, here's what the first two MP3tag actions do:
If ARTIST unequal ALBUMARTIST append TITLE = TITLE+" - ARTIST"
If ALBUMARTIST unequal "" set ARTIST = ALBUMARTIST

Works great for me! Would be great if you could add this to your program.
 
I did (actually) read the post. I'm sorry for the misperception and whatever waste of your time occurred. I probably wasn't clear enough in my first post where I said it handled a couple of the limitations. My implication was that it didn't do everything you had talked about, but did do much of it (and a few more things).

I should have been more specific, just didn't want to end up writing a lot vs. just pointing to the existing discussion. Functionality of script and app were discussed in the thread I linked to. I also tried to be clear in the app page and release notes I wrote.

Too late to avoid the issue now, but to be clear…
(speaking just of my app - still recommend the other thread for fuller discussion of the issues, Majorlance's Applescript, and my app)
My app:
  • Does *not* in general change any tags to handle the album "fragmentation" issue you brought up…. yet. I will look at it as an option. I do regard this as not just a limitation of the Tesla music implementation, but as an actual bug - I don't understand why they would code it to create multiple album listings, and hate the idea of changing my library metadata (even as a copy) to work around it. My dislike of the idea doesn't fix it though, so just as the genre mapping hack strikes me as dirty, it still addresses an issue, and therefore can be seen as a reasonable workaround for an unreasonable bug. I'll look at adding this sort of re-tagging as a checkbox option, along with the other tag changing possibilities mentioned in an earlier post.
  • Does not make a folder with todays date in the base destination directory. I've not seen a need for that and would have to be convinced. On the other hand, you can choose whatever destination you want at the choose destination step, and make your own folder named todays date or whatever to put the "Music" and "Playlists" folders I create into. Or change the folders name yourself.
  • Does workaround the lack of playlist support, as described briefly in the posts here, and at length in the linked to thread and in the app page and release notes.
  • Does do the genre mapping workaround to enable better metadata display in the car.
  • Does support playlist play order and duplicate songs in a single and/or multiple playlists (via folder setup and media item renaming)
  • Does handle not just folder/whole library copying, but also playlist copying without having to do any special playlist setup. And handles easy copying/deletion of any changes made in the playlist without having to remember what you changed or recopy everything (or manually delete anything, in the case of playlists).
  • Though not important to you, of big importance to me and others in similar situations, does handle doing the above while also converting Apple Lossless to FLAC, including higher bit depth and sampling rate variants.

Overall though, the idea was to do all of the above in a way such that you choose your options once, do it, then just rerun and hit a single button every time after that when you add or change your library/playlists, vs. having to remember what changed or do any other manual steps.

So I'll look at adding the tag changing options, 1) artist/albumartist and title rename to workaround album fragmentation and 2) tag stripping option to remove duplicate listings from Album, Artist, and Song views (you could help by testing your theory of tag stripping songs in the Playlists folder to see if it does what you want without unacceptable side effects). Since 2) would eliminate metadata display from the genre playback mode of the genre-mapped playlists (and from the folder mode if Tesla actually showed it anyway), I definitely would want to make sure that it actually works well enough to be worthwhile to do. Both would definitely be options you could turn on or off. I don't think any of these are always correct choices for different people wanting different things from their library.

With regard to changing the song title to be title + artist, I have found that the S doesn't scroll long titles consistently (maybe at all, anymore. Could have sworn it used to though). So can't necessarily expect to see the whole title, unfortunately. I have to deal with this in the playlist folder views already since we end up creating a long name for each song there too. Not a reason not to do it, just something to be aware of.
 
Last edited:
  • Informative
Reactions: bay74
No worries ra-san! I like your program and am using it! It does a great job on the Playlists, obsoleting my workaround way of (ab)using the comments tag for that purpose. And one can always post process the output of your program using (e.g.) MP3tag to suit ones own's taste.. :wink: Besides that, you did a great job explaining what your program does on your web-site so I could/should have noticed it didn't address the album fragmentation issue...

Regarding that, note that changing the song title to be title + artist is optional. It's not needed to prevent album fragmentation. It's just suggested as it still "credits" the song "featuring artist" given Tesla totally ignores the Album Artist tag. Per Tesla, every song belonging to an album is expected to have the same song artist... :mad:

Regarding the "dated root folder", this is something you'll only run into when a song tag changes without the filename changing. In that case, there's a good chance the player picks up the old tag from its cache.

I will test the tag-stripping option to prevent doubles. I'll follow-up in the other thread as you suggest.
 
Just to be clear, let me ask y'all this.

I didn't do all the steps described here. Instead I just saved a playlist from iTunes from my Apple computer onto a USB flash drive that I formatted for Mac. Then I stuck the flash drive into my Tesla. The Tesla doesn't recognize the flash drive (when I'm on the music screen I don't see "USB" as a choice next to Radio/TuneIn/etc.). Is there any way to do what I did and get it recognized or do I have to do the more complicated stuff? I realize the complicated stuff makes things easier with headings, playlists, etc. But if I didn't care about that at first, should the car at least recognize the drive?

Thanks in advance,
Rob
 
Just to be clear, let me ask y'all this.

I didn't do all the steps described here. Instead I just saved a playlist from iTunes from my Apple computer onto a USB flash drive that I formatted for Mac. Then I stuck the flash drive into my Tesla. The Tesla doesn't recognize the flash drive (when I'm on the music screen I don't see "USB" as a choice next to Radio/TuneIn/etc.). Is there any way to do what I did and get it recognized or do I have to do the more complicated stuff? I realize the complicated stuff makes things easier with headings, playlists, etc. But if I didn't care about that at first, should the car at least recognize the drive?

Thanks in advance,
Rob
You need to format the stick as FAT using macOS Disk Utility before you put anything on it. If you use the default or exFAT, your MS won't see it, and Tesla does not do a good job providing any useful error messages that may be your issue.

Similarly, not all encoding formats that iTunes is capable of playing can be played in your Tesla, e.g. Apple Lossless won't play but Lossy .mp4 will. Without getting into a lot of detail, If you stick with MP3 or AAC, or are using music you ripped from CD or bought from the iTunes Store, you'll probably be OK. Copy it to your properly formatted stick and give it a try.

Do check out the thread I previously suggested you explore. There is a lot more of this sort of info there. Unfortunately since Tesla provides almost no documentation as to what is and is not supported, you're going to have to do a bit of reading I'm afraid. Some of us have done a lot of the legwork, but the devil is in the detail. Good luck.