Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: foo_softplaylists (Read 264065 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

foo_softplaylists

Soft Playlists 2011-02-05
-added Last.fm custom playlist functionality, creating a new one must be done on www.last.fm for now

IMPORTANT: For the playlist generation features to work, the foobar2000 Media Library must include at least one folder with music, the more the better!

Can create different Last.fm related playlists:
->loved tracks of a single user, multiple users, friends or neighbours.
->recent tracks of a single user, multiple users, friends or neighbours.
->top tracks of a single user, multiple users, friends or neighbours over different periods.
->top tracks of an artist.
->top tracks of artists similar to an artist.
->top tracks with certain tag.
->tracks similar to a track.
Can also...
-love, unlove, ban and unban a track on your Last.fm account.
-add a track to a custom playlist on your Last.fm account.
-save and load XSPF playlists (make playlists without hard paths). This makes it possible to easily share playlists with other people. Also when you restructure your library (change location of your music files), these playlists will continue to work.

Code: [Select]
Changelog:

2011-02-05:
-added Last.fm custom playlist functionality, creating a new one must be done on www.last.fm for now
2011-02-04:
-changed feed downloading to match Last.fm api changes
-recent tracks playlist: duplicates are not removed anymore
2011-02-03:
-fixed fetching large track feeds for Top Tracks and Recent Tracks
2010-10-21:
-fixed sorting top tracks by playcount when including partial title matches
2010-10-20.2:
-fixed bug when tracks with only artist or title tag are present in library
-more error handling and output
2010-10-20:
-fixed partial title matching
-more error handling and output
2010-10-16:
-added unlove, ban and unban track function
-more error handling and output
-linked against SDK 2010-10-02
2010-08-28:
-added option to also include partial title matches
2010-08-16:
-added option to prefer latest or oldest tracks
-matching 100000 tracks in a library of 20000 tracks is now 9x faster, now takes 870ms on a core i7
2010-08-15:
-added option to prefer highest bitrate, lowest bitrate, longest or shortest tracks
2010-08-11.2:
-fetching more than 1500 loved tracks should now work
2010-08-11:
-using foobar internal http interface which mean proxy should now work
-fixed startup delay issue
2010-08-06:
-fixed some bugs
2010-07-08:
-Added: Last.fm Top Tracks, Loved Tracks and Recent Tracks for each single user of the custom Last.fm user list
2010-07-06:
-Now fully compatible with foobar2000 1.0
2009-12-30.2:
-Added: Last.fm User, Friends and Neighbours Recent Tracks
-Added: Last.fm Top Tracks, Loved Tracks and Recent Tracks of a custom Last.fm user list
2009-12-30:
-Added: Last.fm Top Tags Top Tracks
-Added: Last.fm Custom Tags Top Tracks
-Added: ability to prefix generated Last.fm playlists
-Fixed: crash when loving a track without an internet connection
2009-12-06:
-Added: handling of <duration> and <trackNum> tags when saving and loading XSPF playlists
-Changed: more error handling
2009-12-05:
-Changed: fixed various bugs
2009-12-04:
-Added: ability to output unmatched track info to console
-Added: aborting code, possibly time consuming tasks can be aborted now
-Changed: various strings cleanup
2009-12-03:
-Added: Last.fm Similar Artists Top Tracks
-Added: Last.fm Similar Tracks
-Changed: renamed and added config dialog parameters
-Changed: simplified main menu commands layout
2009-12-01.4:
-Changed: undid a mistake in the last 2 versions, top tracks from artists with special chars should work again
2009-12-01.3:
-Changed: fixed utf8 related bug in saving and loading of XSPF playlists
2009-12-01.2:
-Changed: fixed various special character bugs
2009-12-01:
-Added: Last.fm Love Track
-Added: saving and loading of XSPF playlists
-Changed: fixed some bugs
-Changed: optimized some code
2009-11-26:
-Added: Last.fm Friends Top Tracks over different periods
-Added: Last.fm neighbours Top Tracks over different periods
2009-11-22:
-Added: Last.fm Friends Loved Tracks
-Added: Last.fm Neighbours Loved Tracks
-Added: Last.fm User Top Tracks over different periods
2009-11-22:
-Added: proper settings dialog
2009-11-19:
-Added: Last.fm Artist Top Tracks
2009-11-14:
-Changed: optimized the library querying code: 18 times faster for looking up 1000 tracks in a database of 18686 tracks



Code: [Select]
Todo:

-exploit artist.getTopTags,  track.getTopTags, tag.getTopArtists, tag.getTopTracks
-exploit tag.search, tag.getTopArtists, tag.getTopTracks
-exploit user.getRecentTracks in combination with user.getNeighbours, user.getFriends
-exploit library.getTracks
-option for creating playlist from context menu (on selected tracks)


foo_softplaylists

Reply #2
topic title name is too large as the menu item name (and shouldn't be in "File" instead of "Library") 
and entering the name in advanced preferences is not very comfort
how about adding matches for artist similar charts (like foo_scrobblecharts which is now problematic component)?

foo_softplaylists

Reply #3
topic title name is too large as the menu item name (and shouldn't be in "File" instead of "Library") 
and entering the name in advanced preferences is not very comfort
how about adding matches for artist similar charts (like foo_scrobblecharts which is now problematic component)?


Yeah did't know it wasn't possible to have long titles , if someone wants to fix it please do.

Library is more logical to me

Was a quick way to add the settings.

Started from the foo_scrobblecharts code, I couldn't get the code to compile, and because I wanted to learn everything (It's the first time I write a plugin), I wrote this from 0.
Normally I will include as much as possible that has something to do with soft playlists.

foo_softplaylists

Reply #4
Title fixed.
elevatorladylevitateme

foo_softplaylists

Reply #5
sounds very interesting, thank You!



foo_softplaylists

Reply #8
Didn't know I wanted a component like this, but now I do. Thanks!  Would be even better if, in a future version, functionality to easily (not having to open the preferences dialogue) grab loved tracks from other users (perhaps a dialogue offering to grab lists from your friends on last.fm?) could be added.

foo_softplaylists

Reply #9
Didn't know I wanted a component like this, but now I do. Thanks!  Would be even better if, in a future version, functionality to easily (not having to open the preferences dialogue) grab loved tracks from other users (perhaps a dialogue offering to grab lists from your friends on last.fm?) could be added.


Yes that was the first plan, but my knowledge in that domain (win gui stuff) is too little at the moment.

New version:

Soft Playlists 2009-11-13.2
http://telin.ugent.be/~jdebock/foobar2000/...ftplaylists.dll

Changed: Optimized the library querying code, should work faster for big libraries and path preferences.

foo_softplaylists

Reply #10
Great component! Exactly what i was looking for.

Keep up the good work, adding some new features (playling band's charts and stuff) would be nice too.

This is great start.
Disregard the constabulary.

foo_softplaylists

Reply #11
New version:

Soft Playlists 2009-11-14

Changed: Optimized the library querying code again
4857 ms --> 263 ms
For looking up 1000 tracks in a database of 18686 tracks. This should be fast enough



foo_softplaylists

Reply #14
Excellent! This kind of automation is why we have computers in the first place.

Some suggestions:
- shorter menu item label, such as "Generate last.fm Loved playlist". The username is implied, as I'm the one using it.
- move preferences to the Tools item, instead of Advanced. They're not advanced options, they're just plain ol' component prefs.

There's a lot of potential for expanding the functionality, such as the ability to create playlists from other last.fm sources, with relevant options; generating from other users through a quick dialog window, etc etc.


foo_softplaylists

Reply #16
works great
now can we expect similar artist charts: artist.getSimilar / if library match artist.getTopTracks / library match / sort all by playcount - it seems easy?


foo_softplaylists

Reply #18
Indeed it is more or less a contination, a much speedier one.
Top Charts was already included, Loved Tracks not. And foo_scrobblecharts has been put on the crash list.


foo_softplaylists

Reply #20
Indeed it is more or less a contination, a much speedier one.
Top Charts was already included, Loved Tracks not. And foo_scrobblecharts has been put on the crash list.


True. I also like how this component doesn't automatically start playing the playlist like scrobblecharts did.

However, if this component will be a full replacement, I might also make a request for a "sort" option... Which just sorts the selected artist tracks by their placement in their last.fm top tracks list. This is a handy feature for quickly finding that artists most popular songs when they are already in a playlist.


foo_softplaylists

Reply #22
filesize is half than previous, and you managed to make preferences page but I guess you will need to update it for newest foobar version

foo_softplaylists

Reply #23
filesize is half than previous, and you managed to make preferences page but I guess you will need to update it for newest foobar version


Ok, will have a look what the problems are, is there some info on what has changed or what I should change to get it working again?

foo_softplaylists

Reply #24
The preferences API changed to work in the new/traditional Apply/OK/Cancel mode. But the updated SDK is not out yet, so nothing you can do now anyway.
Full-quoting makes you scroll past the same junk over and over.