Skip to content

Conversation

Eve00000
Copy link
Contributor

@Eve00000 Eve00000 commented Aug 17, 2025

A "couple of espressi "- project, if there's interest it can be adapted/changed:

With this feature it's possible to create/import a playlist from a file that doesn't contain the locations of the track-files.
import file can be *.csv or *.txt
!!! the format needs to be respected, so commas need to be placed also when a title/artist is not added in the txt file.

Handy when creating a preparation in another program (notepad, texteditor, music service)

The 1st (header-)line of the file needs to contain the format of the lines (containing the artist & title/song).
some examples:

title, artist 
title1, artist1
title2, artist2
title3,
,artist4
Row Index,Title,Artist,Album,Source Context,Duration,Date,Popularity,Favorited,Has Lyrics,Artist Link,Album Link,Cover URL
1,title1,artist1,album1,03:27,13/06/2021,By popularity: 8 / 10,true,true,link1,
2,title2,artist2,album2,03:27,13/06/2021,By popularity: 8 / 10,true,true,link2,

#,Song,Artist,Popularity,BPM,Genres,Album,Album Date,Time,Dance,Energy,Acoustic,Instrumental,Happy,Speech,Live,Loud (Db),Key,Time Signature,Added At,xxxxxxx Track Id,Camelot,ISRC
1,"Title1","Artist1",69,101,"genre1","album1",albumdate1,04:26,61,58,6,2,88,0,10,-14,C♯/D♭ Major,4,2025-08-11,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2,"Title2","Artist2",69,101,"genre2","album2,albumdate2,04:26,61,58,6,2,88,0,10,-14,C♯/D♭ Major,4,2025-08-11,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Workflow:

  • A dialog opens to select the file you want to import

  • after opening/checking the file a dialog will show

    • the entries 1 by 1
    • editable title and artist fields (can be adapted to search again)
    • a checkbox "search for title AND artist" (unchecked: search for matches in title OR artist)
    • a results pane containing the tracks found in the library after removing unicode symbols, comments between parenthesis or brackets, mainly a search for all the containing textstrings (longer then 1 char) in title and/or artist
    • the search can be adapted/finetuned by removing/adding/correcting title and/artist
  • doubleclick on a track to add the found track to the new playlist (named as filename + date + time) the dialog will proceed to the next line in the import-file.

  • select multiple tracks and click on "add selection" to add multiple tracks to the new playlist, press 'next' to proceed to the next line in the import-file.

  • all lines in the import file will be processed until end of file or press on cancel.

  • after processing a line (adding a result to the playlist or not) a result ("imported"/"not imported') for the search will be written to a report file (txt file on the location of import file), when pressing cancel all remaining tracks will be added as "not imported".

  • if the results don't contain the right track, press "next"

Upd:ate

  • correct info dialog
  • added some extra info cols in the table (Duration, Bitrate(Tupe), Rating, Size, Location) + all fields show value in tooltip onmouseover.
  • if csv header contains "duration" or "time" the duration of the search entry will be displayed. [m:ss]
  • in dialog total display is added ( # / total)
  • if the import file contains "album" in the header, the 'album' will be displayed (under title - artist)
  • blocked the possibility to edit the results in the table (editing made no sense but for the beauty of it)
  • if the import file contains a line without artist or title the result could be all tracjs in the library (takes time) -> blocked this.
  • some corrections to the reporting.
afbeelding afbeelding afbeelding afbeelding afbeelding afbeelding

@JoergAtGithub
Copy link
Member

Please ammend all Git commits to one!

@vespadj
Copy link

vespadj commented Aug 17, 2025

I try it, it's awesome.
Hot impressions:

  • First msgbox need some pretty fix and/for translate support.
  • Select the file to inspect. File type csv and txt, but any kind of file should be avoided.
  • I suggest to add columns: duration, bitrate, rating, path location
  • If csv, "duration" or "time" fields exists, then it should be displayed somewhere.
  • Rename of a Playlist is a very little window, should be more width (old code)
  • shoud be also added a '?' button that link to online manual.
    Here, should be specified the format of the CSV that could be depends by locate setting.
    E.g.: in Italy, Excel export with tab or ";" instead of ","
    In any case, the current method is the more standard so it's ok, and it is sufficient to specify in docs:

fields delimiter is ,
string delimiter is "

  • skipped / not imported rows could be logged in a roboust way (partial done or temporary)

@vespadj
Copy link

vespadj commented Aug 18, 2025

Thanks @Eve00000 for columns and tooltip.
Some notes:

  1. When cancelled, in log one raw less than the total appairs. E.g.: if after 5 track I click Cancel, the 5th row is missing.
  2. Table is editable (pressing keyboard, space, letters, or F2). Not should be editable.
  3. I log instead of "title -artist - imported", I suggest
    "imported or not"& '\t' &"title - artist"
    so by copy - past to excel or other sheet, the list can easy filtered

@Eve00000
Copy link
Contributor Author

1. When cancelled, in log one raw less than the total  appairs. E.g.: if after 5 track I click Cancel, the 5th row is missing.

I fixed that yesterday, still need to push changes.

2. Table is editable (pressing keyboard, space, letters, or F2). Not should be editable.

Coreect, but the edits don't have effect, but it would be nicer to disable it. True.

3. I log instead of "title -artist - imported", I suggest
   "imported or not"`& '\t' &`"title - artist"
   so by copy - past to excel or other sheet, the list can easy filtered

Putting the 'status' first would make it more difficult to sort on the artist to find the missing tracks (which is the reason to create a report).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants