Can I create an M3U playlist and upload it to Centova Cast?

Question:

Can I create an M3U playlist and upload it to Centova Cast, instead of using Centova Cast's built-in playlist editor?

Answer:

Yes. While this is a powerful feature which advanced users may find very useful, it is likely that less-experienced users may find it difficult to construct relative file paths in the manner necessary for use on a server (vs. that of their home PC).

As such, this feature is disabled by default and is not officially supported in any capacity by Centova Technologies.

Specifying file paths

When your users build their M3U files, they will normally construct them using the paths to the MP3s on their local computer. In order for Centova Cast to use the same M3U file, however, the MP3s must be on the server, and the paths in the M3U file must refer to the paths on the server.

For example, say the user has an MP3 on his computer named C:\MP3\Rock\rock_music.mp3, and he wishes to create an M3U playlist file containing this single MP3. The steps would be as follows:

  1. Using FTP, upload the contents of the C:\MP3 folder to the media directory on the Centova Cast server, maintaining the complete directory structure.

    So in the user's FTP client, he should see a Rock directory inside his media directory, and the rock_music.mp3 file should appear within the Rock directory, just as it would on his local computer.

  2. Create an M3U file which uses paths relative to the C:\MP3 folder for each MP3.

So the relative paths in the M3U file should look like Rock\rock_music.mp3. If the M3U file specifies absolute paths instead (such as C:\MP3\Rock\rock_music.mp3) this will NOT work because there is no such file as C:\MP3\Rock\rock_music.mp3 on the server.

Once these conditions are met, the user can upload his M3U file.

Enabling M3U Importing

If you wish to enable this feature, edit /usr/local/centovacast/etc/centovacast.conf and find the following line:

ALLOW_IMPORT_M3U=false

Change it to:

ALLOW_IMPORT_M3U=true

If this line does not already exist, simply add it at the end of the file.

Finally, restart Centova Cast using:

/etc/init.d/centovacast restart

Uploading an M3U File

After this feature has been enabled, users simply need to launch the media library, select the playlist into which they would like to import the M3U file, and then click Options->Import M3U Playlist.

Tracks will be imported in the order in which they appear in the M3U file. Note that once the tracks are imported, they will be governed as usual by the rules of the playlist into which they were imported. (For example, if you import the M3U into a scheduled playlist, the tracks will play at whatever time you've scheduled for the playlist. If you've imported them into a general rotation playlist, they will play with the randomization and weighting settings you've applied to the playlist, and so-on).

Troubleshooting

I can't figure out the correct relative paths!

If you are having trouble constructing your relative paths, simply open the M3U file and look at the paths it contains. For example, say your M3U contains:

#EXTM3U
#EXTINF:123,Rock Artist - Rock Song
Rock\rock_music.mp3

Take that first MP3 filename -- Rock/rock_music.mp3 -- and prepend the account's media directory to it. In most cases, the media directory will be:

/usr/local/centovacast/var/vhosts/USERNAME/var/spool/media/

The resulting full pathname for the MP3 file is:

/usr/local/centovacast/var/vhosts/USERNAME/var/spool/media/Rock/rock_music.mp3

Now, login to your server via SSH and check on your server's hard disk -- does the MP3 exist at that path? If not, adjust your M3U paths a necessary and try again. Note that you can ignore differences in slashes (i.e., / vs \) as Centova Cast will automatically convert them.

I receive the error "M3U Playlist Not Received"

This indicates that Centova Cast did not receive a file upload from the web browser. This is commonly either because:

  • the server's temporary path is missing or out of disk space
  • the M3U file exceeds the file upload size limits configured in /usr/local/centovacast/etc/centovacast.conf

I receive the error "x track(s) were not found or could not be imported"

This indicates that the paths specified in your M3U file did not correspond to tracks in Centova Cast's media library.

Barring any potential database problems, there are no other possible reasons for this error. If you receive the above error, consult the section above entitled Specifying file paths, and, if necessary, the I can't figure out the correct relative paths section above.

We regret that we are unable to provide further technical support with this error (thus the reason this feature is disabled by default).

Is there a way to generate a sample M3U file with the correct paths?

Yes, but you need SSH access to the server. (If you are not the server administrator, contact your administrator or hosting provider and direct them to this article.)

First, change to the media directory for the stream:

cd /usr/local/centovacast/var/vhosts/USERNAME/var/spool/media/

Replace USERNAME with the actual username of the Centova Cast account.

Next, run the following command (cut and paste for best results):

( echo "#EXTM3U" && find . -name '*.mp3' -printf "#EXTINF:0,%f\n%P\n" ) > sample.m3u

This will create a file called sample.m3u in your media directory which you can then download via FTP and use as a starting point for building your custom M3U files.

NOTE: This article is for Centova Cast v3 only; an alternate version exists for Centova Cast v2.