<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wiki.strawberrymusicplayer.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Str008</id>
	<title>Strawberry Music Player Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.strawberrymusicplayer.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Str008"/>
	<link rel="alternate" type="text/html" href="http://wiki.strawberrymusicplayer.org/wiki/Special:Contributions/Str008"/>
	<updated>2026-05-26T17:48:05Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.38.1</generator>
	<entry>
		<id>http://wiki.strawberrymusicplayer.org/index.php?title=Import_collection_library_and_playlists_from_Clementine&amp;diff=243</id>
		<title>Import collection library and playlists from Clementine</title>
		<link rel="alternate" type="text/html" href="http://wiki.strawberrymusicplayer.org/index.php?title=Import_collection_library_and_playlists_from_Clementine&amp;diff=243"/>
		<updated>2026-03-21T06:24:42Z</updated>

		<summary type="html">&lt;p&gt;Str008: Reasoning behind this edit is described at https://github.com/strawberrymusicplayer/strawberry/issues/2010#issue-3963256513&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Before importing data from Clementine, start Strawberry once so that the initial database schemas (tables) are created. Then exit both Strawberry and Clementine before you start.&lt;br /&gt;
&lt;br /&gt;
The following guide is only briefly tested.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;ALL COLLECTION AND PLAYLISTS DATA IN STRAWBERRY WILL BE OVERWRITTEN REPLACED WITH THE DATA FROM CLEMENTINE.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Start sqlite3 ==&lt;br /&gt;
&lt;br /&gt;
On a terminal and type:&lt;br /&gt;
&lt;br /&gt;
    sqlite3&lt;br /&gt;
&lt;br /&gt;
You will then get a command prompt where you can manually perform SQL queries.&lt;br /&gt;
&lt;br /&gt;
== Attach databases ==&lt;br /&gt;
&lt;br /&gt;
Replace username with your own.&lt;br /&gt;
&lt;br /&gt;
Type the following commands to attach both databases;&lt;br /&gt;
&lt;br /&gt;
    ATTACH &#039;/home/username/.local/share/strawberry/strawberry/strawberry.db&#039; AS strawberry;&lt;br /&gt;
    ATTACH &#039;/home/username/.config/Clementine/clementine.db&#039; AS clementine;&lt;br /&gt;
&lt;br /&gt;
In case of a Flatpak, you may find out correct database file paths using Linux command:&lt;br /&gt;
&lt;br /&gt;
    find ~/.var/app/org.strawberrymusicplayer.strawberry/ $HOME/.config/Clementine/ -iname *db&lt;br /&gt;
&lt;br /&gt;
== Delete all existing songs, playlists and playlist items in the strawberry.db ==&lt;br /&gt;
&lt;br /&gt;
This must be done when importing all data from Clementine because playlists are based on ROWIDs.&lt;br /&gt;
&lt;br /&gt;
    DELETE FROM strawberry.directories;&lt;br /&gt;
&lt;br /&gt;
    DELETE FROM strawberry.subdirectories;&lt;br /&gt;
&lt;br /&gt;
    DELETE FROM strawberry.songs;&lt;br /&gt;
&lt;br /&gt;
    DELETE FROM strawberry.playlists;&lt;br /&gt;
&lt;br /&gt;
    DELETE FROM strawberry.playlist_items;&lt;br /&gt;
&lt;br /&gt;
== Import all data from the collection library songs ==&lt;br /&gt;
&lt;br /&gt;
    INSERT INTO strawberry.directories (path, subdirs) SELECT path, subdirs FROM clementine.directories;&lt;br /&gt;
&lt;br /&gt;
    INSERT INTO strawberry.subdirectories (directory_id, path, mtime) SELECT directory, path, mtime FROM clementine.subdirectories;&lt;br /&gt;
&lt;br /&gt;
    INSERT INTO strawberry.songs (ROWID, title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, beginning, length, bitrate, samplerate, directory_id, url, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path, rating)&lt;br /&gt;
    SELECT ROWID, title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, beginning, length, bitrate, samplerate, directory, filename, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, sampler, forced_compilation_on, forced_compilation_off, effective_compilation, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path, rating FROM clementine.songs WHERE unavailable = 0;&lt;br /&gt;
&lt;br /&gt;
    UPDATE strawberry.songs SET source = 2;&lt;br /&gt;
&lt;br /&gt;
    UPDATE strawberry.songs SET artist_id = &amp;amp;apos;&amp;amp;apos;;&lt;br /&gt;
&lt;br /&gt;
    UPDATE strawberry.songs SET album_id = &amp;amp;apos;&amp;amp;apos;;&lt;br /&gt;
&lt;br /&gt;
    UPDATE strawberry.songs SET song_id = &amp;amp;apos;&amp;amp;apos;;&lt;br /&gt;
&lt;br /&gt;
== Import playlists ==&lt;br /&gt;
&lt;br /&gt;
    INSERT INTO strawberry.playlists (ROWID, name, last_played, special_type, ui_path, is_favorite, dynamic_playlist_type, dynamic_playlist_data, dynamic_playlist_backend)&lt;br /&gt;
    SELECT ROWID, name, last_played, special_type, ui_path, is_favorite, dynamic_playlist_type, dynamic_playlist_data, dynamic_playlist_backend FROM clementine.playlists WHERE dynamic_playlist_type ISNULL;&lt;br /&gt;
&lt;br /&gt;
== Import playlist items ==&lt;br /&gt;
&lt;br /&gt;
    INSERT INTO strawberry.playlist_items&lt;br /&gt;
    (ROWID,&lt;br /&gt;
    playlist,&lt;br /&gt;
    collection_id,&lt;br /&gt;
    title,&lt;br /&gt;
    album,&lt;br /&gt;
    artist,&lt;br /&gt;
    albumartist,&lt;br /&gt;
    track,&lt;br /&gt;
    disc,&lt;br /&gt;
    year,&lt;br /&gt;
    originalyear,&lt;br /&gt;
    genre,&lt;br /&gt;
    compilation,&lt;br /&gt;
    composer,&lt;br /&gt;
    performer,&lt;br /&gt;
    grouping,&lt;br /&gt;
    comment,&lt;br /&gt;
    lyrics,&lt;br /&gt;
    beginning,&lt;br /&gt;
    length,&lt;br /&gt;
    bitrate,&lt;br /&gt;
    samplerate,&lt;br /&gt;
    directory_id,&lt;br /&gt;
    url,&lt;br /&gt;
    filetype,&lt;br /&gt;
    filesize,&lt;br /&gt;
    mtime,&lt;br /&gt;
    ctime,&lt;br /&gt;
    unavailable,&lt;br /&gt;
    playcount,&lt;br /&gt;
    skipcount,&lt;br /&gt;
    lastplayed,&lt;br /&gt;
    compilation_detected,&lt;br /&gt;
    compilation_on,&lt;br /&gt;
    compilation_off,&lt;br /&gt;
    compilation_effective,&lt;br /&gt;
    art_automatic,&lt;br /&gt;
    art_manual,&lt;br /&gt;
    effective_albumartist,&lt;br /&gt;
    effective_originalyear,&lt;br /&gt;
    cue_path,&lt;br /&gt;
    rating&lt;br /&gt;
    )&lt;br /&gt;
    SELECT ROWID,&lt;br /&gt;
       playlist,&lt;br /&gt;
       library_id,&lt;br /&gt;
       title,&lt;br /&gt;
       album,&lt;br /&gt;
       artist,&lt;br /&gt;
       albumartist,&lt;br /&gt;
       track,&lt;br /&gt;
       disc,&lt;br /&gt;
       year,&lt;br /&gt;
       originalyear,&lt;br /&gt;
       genre,&lt;br /&gt;
       compilation,&lt;br /&gt;
       composer,&lt;br /&gt;
       performer,&lt;br /&gt;
       grouping,&lt;br /&gt;
       comment,&lt;br /&gt;
       lyrics,&lt;br /&gt;
       beginning,&lt;br /&gt;
       length,&lt;br /&gt;
       bitrate,&lt;br /&gt;
       samplerate,&lt;br /&gt;
       directory,&lt;br /&gt;
       COALESCE(filename, &#039;&#039;) AS url,&lt;br /&gt;
       filetype,&lt;br /&gt;
       filesize,&lt;br /&gt;
       mtime,&lt;br /&gt;
       ctime,&lt;br /&gt;
       unavailable,&lt;br /&gt;
       playcount,&lt;br /&gt;
       skipcount,&lt;br /&gt;
       lastplayed,&lt;br /&gt;
       sampler,&lt;br /&gt;
       forced_compilation_on,&lt;br /&gt;
       forced_compilation_off,&lt;br /&gt;
       effective_compilation,&lt;br /&gt;
       art_automatic,&lt;br /&gt;
       REPLACE(art_manual, &#039;.config/Clementine/albumcovers&#039;,&#039;.local/share/strawberry/strawberry/collectionalbumcovers&#039;) AS art_manual,&lt;br /&gt;
       effective_albumartist,&lt;br /&gt;
       effective_originalyear,&lt;br /&gt;
       cue_path,&lt;br /&gt;
       rating FROM clementine.playlist_items WHERE type = &#039;Library&#039;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    UPDATE strawberry.playlist_items SET source = 2; UPDATE strawberry.playlist_items SET type = 2;&lt;br /&gt;
&lt;br /&gt;
    UPDATE strawberry.playlist_items SET artist_id = &amp;amp;apos;&amp;amp;apos;; UPDATE strawberry.playlist_items SET album_id = &amp;amp;apos;&amp;amp;apos;; UPDATE strawberry.playlist_items SET song_id = &amp;amp;apos;&amp;amp;apos;;&lt;br /&gt;
&lt;br /&gt;
== Detach the databases and quit ==&lt;br /&gt;
&lt;br /&gt;
    DETACH clementine;&lt;br /&gt;
    DETACH strawberry;&lt;br /&gt;
    .quit&lt;br /&gt;
&lt;br /&gt;
== Restore all album covers ==&lt;br /&gt;
&lt;br /&gt;
Use the following command to restore all album covers cached in Clementine:&lt;br /&gt;
&lt;br /&gt;
    cp ~/.config/Clementine/albumcovers/* ~/.local/share/strawberry/strawberry/collectionalbumcovers/&lt;/div&gt;</summary>
		<author><name>Str008</name></author>
	</entry>
	<entry>
		<id>http://wiki.strawberrymusicplayer.org/index.php?title=Import_collection_library_and_playlists_from_Clementine&amp;diff=242</id>
		<title>Import collection library and playlists from Clementine</title>
		<link rel="alternate" type="text/html" href="http://wiki.strawberrymusicplayer.org/index.php?title=Import_collection_library_and_playlists_from_Clementine&amp;diff=242"/>
		<updated>2026-03-21T06:16:23Z</updated>

		<summary type="html">&lt;p&gt;Str008: Original commands not worked for Flatpak and a layman may be unable to figure out correct paths on their own.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Before importing data from Clementine, start Strawberry once so that the initial database schemas (tables) are created. Then exit both Strawberry and Clementine before you start.&lt;br /&gt;
&lt;br /&gt;
The following guide is only briefly tested.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;ALL COLLECTION AND PLAYLISTS DATA IN STRAWBERRY WILL BE OVERWRITTEN REPLACED WITH THE DATA FROM CLEMENTINE.&amp;lt;/strong&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Start sqlite3 ==&lt;br /&gt;
&lt;br /&gt;
On a terminal and type:&lt;br /&gt;
&lt;br /&gt;
    sqlite3&lt;br /&gt;
&lt;br /&gt;
You will then get a command prompt where you can manually perform SQL queries.&lt;br /&gt;
&lt;br /&gt;
== Attach databases ==&lt;br /&gt;
&lt;br /&gt;
Replace username with your own.&lt;br /&gt;
&lt;br /&gt;
Type the following commands to attach both databases;&lt;br /&gt;
&lt;br /&gt;
    ATTACH &#039;/home/username/.local/share/strawberry/strawberry/strawberry.db&#039; AS strawberry;&lt;br /&gt;
    ATTACH &#039;/home/username/.config/Clementine/clementine.db&#039; AS clementine;&lt;br /&gt;
&lt;br /&gt;
In case of a Flatpak, you may find out correct database file paths using Linux command:&lt;br /&gt;
&lt;br /&gt;
    find ~/.var/app/org.strawberrymusicplayer.strawberry/ $HOME/.config/Clementine/ -iname *db&lt;br /&gt;
&lt;br /&gt;
== Delete all existing songs, playlists and playlist items in the strawberry.db ==&lt;br /&gt;
&lt;br /&gt;
This must be done when importing all data from Clementine because playlists are based on ROWIDs.&lt;br /&gt;
&lt;br /&gt;
    DELETE FROM strawberry.directories;&lt;br /&gt;
&lt;br /&gt;
    DELETE FROM strawberry.subdirectories;&lt;br /&gt;
&lt;br /&gt;
    DELETE FROM strawberry.songs;&lt;br /&gt;
&lt;br /&gt;
    DELETE FROM strawberry.playlists;&lt;br /&gt;
&lt;br /&gt;
    DELETE FROM strawberry.playlist_items;&lt;br /&gt;
&lt;br /&gt;
== Import all data from the collection library songs ==&lt;br /&gt;
&lt;br /&gt;
    INSERT INTO strawberry.directories (path, subdirs) SELECT path, subdirs FROM clementine.directories;&lt;br /&gt;
&lt;br /&gt;
    INSERT INTO strawberry.subdirectories (directory_id, path, mtime) SELECT directory, path, mtime FROM clementine.subdirectories;&lt;br /&gt;
&lt;br /&gt;
    INSERT INTO strawberry.songs (ROWID, title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, beginning, length, bitrate, samplerate, directory_id, url, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, compilation_detected, compilation_on, compilation_off, compilation_effective, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path, rating)&lt;br /&gt;
    SELECT ROWID, title, album, artist, albumartist, track, disc, year, originalyear, genre, compilation, composer, performer, grouping, comment, lyrics, beginning, length, bitrate, samplerate, directory, filename, filetype, filesize, mtime, ctime, unavailable, playcount, skipcount, lastplayed, sampler, forced_compilation_on, forced_compilation_off, effective_compilation, art_automatic, art_manual, effective_albumartist, effective_originalyear, cue_path, rating FROM clementine.songs WHERE unavailable = 0;&lt;br /&gt;
&lt;br /&gt;
    UPDATE strawberry.songs SET source = 2;&lt;br /&gt;
&lt;br /&gt;
    UPDATE strawberry.songs SET artist_id = &amp;amp;apos;&amp;amp;apos;;&lt;br /&gt;
&lt;br /&gt;
    UPDATE strawberry.songs SET album_id = &amp;amp;apos;&amp;amp;apos;;&lt;br /&gt;
&lt;br /&gt;
    UPDATE strawberry.songs SET song_id = &amp;amp;apos;&amp;amp;apos;;&lt;br /&gt;
&lt;br /&gt;
== Import playlists ==&lt;br /&gt;
&lt;br /&gt;
    INSERT INTO strawberry.playlists (ROWID, name, last_played, special_type, ui_path, is_favorite, dynamic_playlist_type, dynamic_playlist_data, dynamic_playlist_backend)&lt;br /&gt;
    SELECT ROWID, name, last_played, special_type, ui_path, is_favorite, dynamic_playlist_type, dynamic_playlist_data, dynamic_playlist_backend FROM clementine.playlists WHERE dynamic_playlist_type ISNULL;&lt;br /&gt;
&lt;br /&gt;
== Import playlist items ==&lt;br /&gt;
&lt;br /&gt;
    INSERT INTO strawberry.playlist_items&lt;br /&gt;
    (ROWID,&lt;br /&gt;
    playlist,&lt;br /&gt;
    collection_id,&lt;br /&gt;
    title,&lt;br /&gt;
    album,&lt;br /&gt;
    artist,&lt;br /&gt;
    albumartist,&lt;br /&gt;
    track,&lt;br /&gt;
    disc,&lt;br /&gt;
    year,&lt;br /&gt;
    originalyear,&lt;br /&gt;
    genre,&lt;br /&gt;
    compilation,&lt;br /&gt;
    composer,&lt;br /&gt;
    performer,&lt;br /&gt;
    grouping,&lt;br /&gt;
    comment,&lt;br /&gt;
    lyrics,&lt;br /&gt;
    beginning,&lt;br /&gt;
    length,&lt;br /&gt;
    bitrate,&lt;br /&gt;
    samplerate,&lt;br /&gt;
    directory_id,&lt;br /&gt;
    url,&lt;br /&gt;
    filetype,&lt;br /&gt;
    filesize,&lt;br /&gt;
    mtime,&lt;br /&gt;
    ctime,&lt;br /&gt;
    unavailable,&lt;br /&gt;
    playcount,&lt;br /&gt;
    skipcount,&lt;br /&gt;
    lastplayed,&lt;br /&gt;
    compilation_detected,&lt;br /&gt;
    compilation_on,&lt;br /&gt;
    compilation_off,&lt;br /&gt;
    compilation_effective,&lt;br /&gt;
    art_automatic,&lt;br /&gt;
    art_manual,&lt;br /&gt;
    effective_albumartist,&lt;br /&gt;
    effective_originalyear,&lt;br /&gt;
    cue_path,&lt;br /&gt;
    rating&lt;br /&gt;
    )&lt;br /&gt;
    SELECT ROWID,&lt;br /&gt;
       playlist,&lt;br /&gt;
       library_id,&lt;br /&gt;
       title,&lt;br /&gt;
       album,&lt;br /&gt;
       artist,&lt;br /&gt;
       albumartist,&lt;br /&gt;
       track,&lt;br /&gt;
       disc,&lt;br /&gt;
       year,&lt;br /&gt;
       originalyear,&lt;br /&gt;
       genre,&lt;br /&gt;
       compilation,&lt;br /&gt;
       composer,&lt;br /&gt;
       performer,&lt;br /&gt;
       grouping,&lt;br /&gt;
       comment,&lt;br /&gt;
       lyrics,&lt;br /&gt;
       beginning,&lt;br /&gt;
       length,&lt;br /&gt;
       bitrate,&lt;br /&gt;
       samplerate,&lt;br /&gt;
       directory,&lt;br /&gt;
       filename,&lt;br /&gt;
       filetype,&lt;br /&gt;
       filesize,&lt;br /&gt;
       mtime,&lt;br /&gt;
       ctime,&lt;br /&gt;
       unavailable,&lt;br /&gt;
       playcount,&lt;br /&gt;
       skipcount,&lt;br /&gt;
       lastplayed,&lt;br /&gt;
       sampler,&lt;br /&gt;
       forced_compilation_on,&lt;br /&gt;
       forced_compilation_off,&lt;br /&gt;
       effective_compilation,&lt;br /&gt;
       art_automatic,&lt;br /&gt;
       REPLACE(art_manual, &#039;.config/Clementine/albumcovers&#039;,&#039;.local/share/strawberry/strawberry/collectionalbumcovers&#039;),&lt;br /&gt;
       effective_albumartist,&lt;br /&gt;
       effective_originalyear,&lt;br /&gt;
       cue_path,&lt;br /&gt;
       rating FROM clementine.playlist_items WHERE type = &#039;Library&#039;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    UPDATE strawberry.playlist_items SET source = 2;&lt;br /&gt;
&lt;br /&gt;
    UPDATE strawberry.playlist_items SET type = 2;&lt;br /&gt;
&lt;br /&gt;
    UPDATE strawberry.playlist_items SET artist_id = &amp;amp;apos;&amp;amp;apos;;&lt;br /&gt;
&lt;br /&gt;
    UPDATE strawberry.playlist_items SET album_id = &amp;amp;apos;&amp;amp;apos;;&lt;br /&gt;
&lt;br /&gt;
    UPDATE strawberry.playlist_items SET song_id = &amp;amp;apos;&amp;amp;apos;;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Detach the databases and quit ==&lt;br /&gt;
&lt;br /&gt;
    DETACH clementine;&lt;br /&gt;
    DETACH strawberry;&lt;br /&gt;
    .quit&lt;br /&gt;
&lt;br /&gt;
== Restore all album covers ==&lt;br /&gt;
&lt;br /&gt;
Use the following command to restore all album covers cached in Clementine:&lt;br /&gt;
&lt;br /&gt;
    cp ~/.config/Clementine/albumcovers/* ~/.local/share/strawberry/strawberry/collectionalbumcovers/&lt;/div&gt;</summary>
		<author><name>Str008</name></author>
	</entry>
</feed>