rembo10 / headphones

Automatic music downloader for SABnzbd
GNU General Public License v3.0
3.36k stars 600 forks source link

Top 40 #1279

Open Githubaments opened 10 years ago

Githubaments commented 10 years ago

Is there a way to set headphones to download the top 40 singles every week? Or the 10 album chart?

cgelici commented 10 years ago

Top 40 every week would include many duplicates don't you think ? Anyway, I don't see how that is possible at this moment. For now you could use a RSS feed with your torrent client instead.

The Dutch Top 40 (weekly): http://isohunt.com/js/rss/nederlandse+top+40?iht=-1

You could add such a feed to your torrent client (if it supports rss feeds) and can even set it to auto download if you wish.

Additionally you can move them to you music folder when finished and start re-scanning the media library from Headphones.

felipesalomao commented 10 years ago

@AdeHub But it dont solve problem of duplicated musics, it would be easy solve, just add musics download in database list and not download it again.. it could be integrated to headphones.. Would be really good..

seek1338 commented 9 years ago

if you use sabnzb you can backup all downloaded nzb und pause on doubles.

ghost commented 9 years ago

@seek1338 The whole album is 1 nzb file usually. So that won't prevent doubles. Even if each song is 1 nzb file, you still can't prevent doubles unless you do some 'guessit' magic but that would be overkill.

For this feature to be successfully implemented you need to find a source that publishes a list of top 40 songs divided by 'new entries' and 'current hits' so that the new ones can be added without downloading the old ones. I believe the 'Nederlandse top 40' uploader does this now, but that's torrent only I believe.

seek1338 commented 9 years ago

ok my failure... writte until thinking it to the end.. sry

robbinjanssen commented 9 years ago

Any update on this?:)

speedyflipper commented 8 years ago

Last night, I created a vbscript that searches itunes top 10 albums, matches musicbrainz and then adds them to headphones via api. It uses the addartist, addalbum and queuealbum.

It's not perfect, last night it matched 8 of the 10 albums. I'm not sure how it would work for singles but you might be able to use top songs and redirect to the album.

It stops duplicates by not running the api commands if headphones already has the album as either downloaded, wanted or snatched

Would anyone be interested in it? I'm going to try making it work off songs tonight

Githubaments commented 8 years ago

I'd actually be more interested in the top 10 albums, rather than the singles. That'd be really cool.

speedyflipper commented 8 years ago

It's not 100%, sometimes the requests timeout and don't finish and it can't always match the albums with musicbrainz, but here you go

http://pastebin.com/90GMBs30

AdeHub commented 8 years ago

@speedyflipper It would be cool to get this implemented from within headphones

speedyflipper commented 8 years ago

@AdeHub Sorry but I don't know python nearly well enough

karaambaa commented 8 years ago

I wrote a little script in python. It uses billboard as chart source. By now it isn't checking if an album already exists in headphones, how ever it checks if an album is in the wanted list. Is there any way to check if an album is already downloaded and get the AlbumTitle and the path? It should be possible to download singles too, but I don't know how well that works… To do that rel = musicbrainzngs.search_releases(artist=ArtistName, release=AlbumName, limit=1, strict=True, type="album") (in line 41) should be changed to rel = musicbrainzngs.search_releases(artist=ArtistName, release=AlbumName, limit=1, strict=True, type="single")

http://pastebin.com/g6vF2SNp

danpowpow commented 7 years ago

Hiya, @karaambaa - Apols for the noob question, but how would i implement your billboard feature?

specifically, once i've installed dependencies -

pip install billboard.py

pip install musicbrainzngs

what then?

also, at the bottom where you note the charttype etc, how would i implement multiples, for example, the top 20 Country, and top 10 Jazz albums?

thanks for building what looks like a v useful addition to rembo10's software.

karaambaa commented 7 years ago

@danpowpow You have to edit line 17 to 22 so it matchs your headphones setup.

To get more than one charttype you can readd the last line multiple times. In your example the last two lines should be: Line 99: billboardCharts("country-albums", "20")

Line 100 (you'll have to add this one): billboardCharts("jazz-albums", "10")

thesatman commented 7 years ago

@karaambaa

Handy piece of script. Thank you :). I tested first with the default file, and edited the chart name and the number of items. It scanned nicely.

Next I copied the file to headbill-single.py and edited line 53 (the "album" line, changed it to "single"). And the list line I used "5". But it looks like it fetches all items listed on the web page (30).

I noticed 2 things: Looks like a check against the already downloaded would be a major advantage. Regardless of that will NZBget do a check for copies, but that won't help in this case.

The other thing is that I noticed (or it seems to be) that track that include "featuring" and artist will not give the correct hit is an abbreviation "feat." is used. But i can be mistaking...

More of an headphones issue is that the meta tags are not always correct. Like it fetches the track info from MusicBrainz where it is a track from an album, where as in my case I was looking for the single. And that is a different set of tags, another cover, etc...

So, just thinking up loud, talking to my self... but I guess the only way to do this with the least possible errors is to run the script, let HP do the selection and pass it on to NZBget or utorrent (or any other compatible torrent client). Store the files in a temporary folder, do the meta tag update manually. Finally move the files manually to the final destination folder and update the media server.

Another HP challenge is that it would be an advantage if it could deal with multiple categories, ergo multiple destination folders. Like CouchPotato does. This way you can have a destination folder for albums, and another for singles.

Do you think you could get the script to do a check against "already downloaded?

thesatman commented 7 years ago

@speedyflipper : I'm not sure how to configure the vb script. How do I enter the Headphones api key? Would like to test this for downloading singles and/or albums.

I am using this URL "http://localhost:5060/api?apikey=" ... would that be correct, as it this here my HP server is running. No key manually to enter?

When I run the VB script i get this error for line 62 char 4 : type mismatch Check If Needed 800A000D, meaning this line:

If CheckIfNeeded(releaseGroupMusic, configFile) Then AddAlbum releaseGroupMusic, configFile