# Playlists and Playlist Staging

Yate allows you create and import m3u(8) playlists and iTunes playlists.

m3u(8) playlists are created via the Actions menu's Create m3u Files item. Additional information can be found here.

iTunes playlists are created via the Actions menu's Create iTunes Playlist item. Additional information can be found here.

Yate has the concept of a staging database which can be used to accumulate tracks while you are deciding what should be included in a playlist. The staging database is a file located at:

> ~/Library/Application Support/Yate/Staging Playlist.csv

The database is the same as any other database except that certain functions are provided to facilitate its use as a staging area. The Files menu has a sub-menu named Staging Playlist with the following items:

Add to Staging Playlist
  If the Staging Database does not exist, it will be created. If the database is not open, it will be opened. All selected tracks in the main window will be added to the playlist. Duplicates will not be created, however the information in the database will be updated if required. If you're going to be using this functionality we recommend that you access this function from toolbar button or a keyboard shortcut. Accessing the menu each time you want to add a track will quickly get tiresome. The toolbar button will open the database even if no files are selected. It will also open the database without adding if the Shift key is held when using the toolbar button. Note: You can also add files from within any Track database without loading the files.
Open Staging Playlist
  If the Staging Database does not exist, it will be created. If the database is not open, it will be opened.
Delete Staging Playlist
  If for any reason you want to delete the database, you can use this menu item. More information is supplied below.

Track databases have an equivalent Add to Staging Playlist context menu item. Using this you can add items directly from within a Track database.

Whenever tracks are added to the staging playlist, it is immediately saved. If you manually make changes in the staging playlist database, you will have to manually save the changes.

Now for a few nitty gritty details. Whenever the database is created, an Export Set named Staging Playlist Database Columns is used to determine which columns are created. The only requirement is a File Path column, however, you will typically want more information to be displayed. If you modify the export set such that it is not valid you will have to repair or re-create it. You can always return to the default set by deleting it and then by holding down the Option key and doing a Yate>Reset Built in Items>Import Export Sets. If you change the contents of the set you will have to do a Delete Staging Playlist to force the application to use the new column layout.

You may have other database open at the same time. Perhaps a track or album database. In order to avoid mishaps when updating those databases, the Staging Playlist database is locked. This prevents the inadvertent addition of tracks to the database. If for any reason you want to update the content you must first unlock the Staging Database from its context menu. After doing your update it is a good idea to lock the database again. The application will set it locked again the next time you do an Open Staging Database or Update Staging Database. In order to avoid issues when tracks are renamed or moved, it is a good idea to include a Yate Track ID in the export set and in your tracks.

The Staging Playlist database will retain its content when closed. You can work on playlists at your leisure. If you want to start a new playlist you can remove one or all items by selecting them and by doing a Delete Rows from the context menu.

If you want to randomize the sort order of the rows in the database, hold down the Option key and display the database table header's context menu. The Saved Sort item will change to Randomize.

If you want to produce an m3u(8) playlist, simply use the database viewer's context menu item named Create m3u File.

If you want to produce an iTunes playlist, you can do so if the database has an iTunes PID column (the default export set contains this field), and your tracks had iTunes PIDs when they were added to the database. If the conditions are met, you can simply use the database viewer's context menu item named Create iTunes Playlist. You can also add selected tracks to the iTunes Staging Database by means of the database viewer's context menu item named Add to iTunes Staging Database.

You can add tracks directly to an iTunes playlist by means of the Add to iTunes Playlist item on the File menu. If you want to create an iTunes playlist from the staging database and you don't meet the conditions for the Create iTunes Playlist functionality, do the following:

- set the Open Mode to Playlist.
- close all loaded files in the main window.
- select all rows in the database.
- from the database's context menu do an Open.
- select all opened files in the main window an link them to items.
- do a File>Staging Playlist>Create iTunes Playlist.

If you want to change or create a new playlist based on an existing m3u(8) file, do the following:

- close all open tracks in the main window.
- drag the m3u(8) file into the main window's file list area or do a File>Open and select the file.
- do an File>Staging Playlist>Delete Staging File.
- select all tracks in the main window.
- do an File>Staging Playlist>Update Staging File

If you want to change or create a new iTunes playlist based on an existing iTunes playlist, do the following:

- set the Open Mode to Playlist.
- drag the iTunes playlist into the main window's file list area.
- do an File>Staging Playlist>Delete Staging File.
- select all tracks in the main window.
- do a File>Staging Playlist>Update Staging File

If your audio player cannot handle m3u8 files, there are still steps that you can take. Yate will only produce m3u8 playlists when filenames cannot be encoded as ISO-Latin 1 without losing information. If an m3u8 file is produced the only solution is to rename the filenames such that they can be encoded as ISO-Latin 1. Yate's rename templates have the ability to force the encoding. There is a sample action on the Yate Resources web page called Validate mu3 not m3u8. This action can be used to check if the main windows selected files can be encoded as ISO-Latin-1. If you want to validate the contents of the staging playlist before creating an m3u(8) file, do the following:

- set the Open Mode to Playlist.
- close all loaded files in the main window.
- select all rows in the database.
- from the database's context menu do an Open.
- run the Validate mu3 not m3u8 action.
- if errors are reported you will have to rename the files as follows:
  - Make sure you have a variant of your preferred rename template which has the Force Latin-1 option set.
  - rename the files using your rename template.
  - you can create the m3u file directly from the main window by doing an File>Staging Playlist>Create m3u File.
  - If you want to update the Staging Playlist you can do it in two ways. The first is to follow the instructions to change or create a new playlist based on an existing m3u(8) file described above. If your Staging Playlist and the renamed tracks have Yate Track IDs, you can simply do an Update Database Values from Open Files from the database window's context menu.

Additional information:

Databases & CSV/TSV Files

Database Settings

Export Sets

Yate Database IDs

The Open Mode

The Rename Template Editor