Jump to content

ZigZagJoe

Dedicated Members
  • Posts

    895
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by ZigZagJoe

  1. Probably the parsing bit taking lots of cpu, it's not particularly optimized.
  2. You try clearing cache in FF? Otherwise, i'm not sure what could be the problem. I'm planning to put a few small features from PS into DS next time i release, but first i want to figure out that file access thing. I just tried deezer, and it worked fine, (saved music etc) so at least i know it is not a format change.
  3. Just a note, got a phone that uses windows mobile, with WMP mobile 10 it supports AAC files from pandora and as far as i can tell on the phone's built in speaker is correctly decoding SBR. So, add Windows mobile devices to the list. I wonder if this includes that microsoft mp3 player?
  4. It was never conclusively proven to work or not, but it would be simple to add to DS. But as Deezer has no country restriction i know of, it's not really needed. DNS resolution failed (and it fails here too). That means, deezer has buggered something.
  5. Are you still getting file access violations? not quite sure why that is happening.... little busy lately but i will try to figure it out
  6. Okay, small new release: SP: (1.003b) Some internal architectural changes. PS: (1.008d) Odd bug prevention? Remote Play/pause/next/volume/rating controls Remote Song playing info Few little changes... DS: (0.02a) First public release. Nothing really new. Go to Deezer website, and listen to music. Should download. To use the remoting features of PS, first, you will need to go into advanced settings (config->Advanced config), and find the value "AllowNonLocal" in the key pane. Click on it, and change the Value to "True". Hit okay, yes, and okay again. Then, launch the helper and or fader app, and run pandora. You should now be able to control PS remotely by going to the status page, and using the controls. Download: http://zzj.itf-inc.com/SPPS1.002c1.008dDS.zip Not quite sure how this could happen, but i added a small bit to try to prevent it.
  7. No. The flash applet is requesting THROUGH the proxy - a separate request is not made. I imagine it checks the user-agent.
  8. What i meant was, when that request goes through the proxy, when the proxy has completed downloading it from server and is preparing to send it to client (flash player), it has to get saved there (from the response in memory). This is the only way to do so. Also, the pandora player receives XML data which tells it the next 4 songs that will play, those songs' metadata, and the URL which is used to retrieve them.
  9. Yes, so you must save the response that the flash gets (that is how PS works, on windows). On linux atleast they can't lock the file like is done on windows. (linux victor)
  10. You'll need to use a proxy regardless; you need to read the XML data pandora sends the flash (which is not saved to tmp or otherwise, iirc, and you can't duplicate the request); and it is a more durable way to get the music anyways.
  11. http://*pandora.com/*xmlrpc*fragment* xml data which contains song metadata. The url used to request the songs is within; You'll need to use that to match audio metadata with the actual song data. http://*pandora.com/*xmlrpc*getstations* station names paired with keys, xml format. the station key is contained in the song metadata ("stationId" key in song data) http://*pandora.com/*xmlrpc*addfeedback* feedback from client. Arg7 in the request url denotes wither it was thumbs up or down; true or false. Arg2 is song id (field "musicId" in metadata) http://*pandora.com/*tuner_warn* errors that the client encountered, not really useful insofar as saving music goes, but a good thing to log. http://audio*pandora.com/*token=* song data, in HE-AAC or MP3 format. MP3 for any flash version older than 9r115, otherwise aacPlus NOTE: all urls have been converted to lowercase. Go to http://mpeg4ip.sourceforge.net/ to get the (linux, windows port available) utility mp4tags, which can be used to tag the HE-AAC files that pandora sends to clients. I don't have any samples of the XML data (the bits that parse that in PS have been done for a long time) but that should be enough to get your started. You will want to check that the response code is 200 before trying to parse the xml data, sometimes Pandora servers make a poo and sent a 404 or other error page, and the XML parser will hairball. I should setup a linux virtual machine again, and see if SProxy + Pandorasaver can work properly with wine. (or however you run C# progs on linux...mono, perhaps.)
  12. Adding a number or removing the artist will be enough to cause it to not match properly. You can just export all the songs you have in itunes and use that as a blacklist, however.
  13. Uh, weird.... that should not be able to happen, ever. in any case, it would happen after encoding is completed and would also be independent of sniffing new songs. Do you mean, it is downloading duplicates, or is just not saving a lot because matches? Also, keep in mind, itunes may mangle the names of files. Make sure the names are in the same format as PS forms them. (check the common tab - file name style). Also, to do VBR, go on the advanced tab, and mess with the encoder command. I don't know what the option to make LAME do vbr is, however.
  14. Yah, found that a while ago but didn't see the need to switch from mp4tags. it works, why bother? heh
  15. You should also see the number of blacklist patterns loaded on the status page (i can't recall if it shows the patterns themselves, i might have changed that) Also, you need to list directories in Blacklist.txt (exact name), not in a *.blacklist.txt file. If you put a path like "G:\music\Pandora\" (example) in it, it will scan that directory for all files.
  16. Check Blacklist.txt. Put the location of where you moved the files into Blacklist.txt, and move it to the save folder. Then, in settings, enable blacklists. In the log, it should note a significant number of patterns were added. Hrm. Might be a flash 10 thing. I'll have to install it on a virtual pc and give it a few pokes. @brofix & Tubbers Eh, no, no plans at the moment. As it turns out i was thinking of mp3 -> mp4 conversion ( hey i was tired ); with mp4 the problem is extracting the metadata - mp4tags afaik only writes it, and faad provides incomplete data. Actually, faad seems to provide most of the data except the albumart cannot be extracted.
  17. No, there is not a built in way to do it. It would be a trivial exercise to write one, though. BTW - those mp4 files are the most efficient way to store them - using mp3 will require them to be 2-3x the size to maintain quality. But, of course, you sacrifice portable player compatibility.
  18. Errr. That error isn't even possible :X (literally, by the time this is getting init'ed, that should be assigned....) added code to deal with that, in the future... What browser are you using for PS, and what does the button do? (never change from loading, do nothing on click, PS not download, orrr..?) also, go to http://zzj.itf-inc.com/version.html and report the flash version here. http://mpeg4ip.sourceforge.net/ Licensing is a bit murky at best. The executable itself is under the mozilla license... beyond that, i am not sure. I should check into making sure how i have LAME and FAAD packaged is GPL-compatible. Settings->Common->Re-encode files. By default, it re-encodes to mp3. Keep in mind this does take time and processing power, so while turbo mode will function for a period with it on, it will eventually shut off turbo to let the encoder catch up.
  19. Playlist files themselves will be updated automatically, but i dont know if itunes can tell that. I think it just imports all the files rather than watches the playlist itself.
  20. Hrm. Odd. Frankly, i don't know why itunes would do that (i don't have that much experience with it, i prefer winamp) Odd, if the file is already in the playlist, it shouldn't be added again... I'll look into it. Never had it happen yet, though. -- Got the DSaver (man, i have such original names) working, and as far as i can tell it works well enough. Need brofix to do a little testing for me before i want to try releasing it tho.
  21. Got the automatic ripping of the bit on the main page where you can hit play and have it play, not worked on the other bits yet. But that should not be too hard. This one is gonna be quite a bit simpler than PS; SOP is to check if file exists, if not, dump it, tag it, and leave it in the base folder (configurable under SProxy advanced options only atm). Mebbee add stuff like selective dl later. The mp3 songs? That's odd... or do you mean mp4 files? Itunes is a bit picky about them; and wouldn't let me transfer them without renaming.
  22. Hrm, deezer is interesting indeed. Love the first playlist it made when I tried it. However, I've not been able to figure out the metadata format yet (the data downloaded does not match the song being played). Audio seems to be in a FLV container, mp3 128kb. Simple to extract. If I can figure out the metadata it would be simple to write a ripper plugin for it. Eventually perhaps it could be integrated into PS but for now I'd just do it separately. Okay, it can be decoded. Fields are delimited by 0x02 0x00, then a random char, then field data. 3 NULL in a row delimits playlist entries. Field six is contained in the URL, so just need to look for an entry with matching data. Entry start seems to be 0x02 0x00 0x07 and ends with 0x02 0x00 0x00. Sometime individual fields seem to have common start chars... Playlist data does not seem to change field order, nor do the garbage chars denote the field. field seven and eight always prefixed with 0x02 0x00 and space URL data format- http:// proxy-*.deezer.com/rewrite/<unk hex data>/<field seven of playlist info>/<unk hex data>/<unk hex data>/<comma separated flash version number>/ Extracting the mp3 data would be simple - mplayer -dumpaudio temp_file_name then move stream.dump to file_name.mp3 Playlist data example (after changing delimiters) &lt;playdel&gt; &lt;entrystart&gt;2949256&lt;del&gt;Here in This Place (From Les Indes galantes, La Danse des Sauvages)&lt;del&gt;186109&lt;del&gt;Paul And Louise&lt;del&gt;286592&lt;del&gt;Private Domain&lt;del&gt;99fcef6f3809eadbac0718c4bebe76ba&lt;del&gt;e19767f8303b97e9d4909e623fa112e8&lt;del&gt;0&lt;del&gt;237&lt;del&gt;3&lt;del&gt;1&lt;entryend&gt; &lt;playdel&gt; &lt;entrystart&gt;1134336&lt;del&gt;Second Chance&lt;del&gt;16848&lt;del&gt;Liam Finn&lt;del&gt;121661&lt;del&gt;I'll Be Lightning&lt;del&gt;8425584aa26330a6a6bec35b61a0d833&lt;del&gt;2a89e91313cbf20503d4594c8bcc96a7&lt;del&gt;0&lt;del&gt;292&lt;del&gt;1&lt;del&gt;2&lt;entryend&gt; &lt;playdel&gt; &lt;entrystart&gt;2789464&lt;del&gt;Another girl (the model song)&lt;del&gt;166099&lt;del&gt;Kim Cao&lt;del&gt;271105&lt;del&gt;Plug me in&lt;del&gt;4add9319835d786f6f1951bf606762c0&lt;del&gt;51002ea958ed1e0fe4a0594a3b41f9d2&lt;del&gt;0&lt;del&gt;213&lt;del&gt;1&lt;del&gt;1&lt;entryend&gt; &lt;playdel&gt; &lt;entrystart&gt;2704011&lt;del&gt;Waiting&lt;del&gt;159926&lt;del&gt;Lazhar&lt;del&gt;261347&lt;del&gt;Animal 7&lt;del&gt;721a6a451922aba6755f23df9a0a288d&lt;del&gt;f2e00a8ccd6dbc40d9e14c2ac56fadd0&lt;del&gt;0&lt;del&gt;192&lt;del&gt;1&lt;del&gt;1&lt;entryend&gt; &lt;playdel&gt; &lt;entrystart&gt;2221003&lt;del&gt;Too Much Space&lt;del&gt;13366&lt;del&gt;Hey Hey My My&lt;del&gt;27228&lt;del&gt;Hey Hey My My&lt;del&gt;5ca57b840733e603d1a5481bfd24915d&lt;del&gt;440a5ff687b7e8110b0b41c142ed9b2f&lt;del&gt;0&lt;del&gt;213&lt;del&gt;15&lt;del&gt;11&lt;entryend&gt; &lt;playdel&gt; &lt;entrystart&gt;2802525&lt;del&gt;Quand je marche&lt;del&gt;95467&lt;del&gt;Bensé&lt;del&gt;272308&lt;del&gt;Quand je marche&lt;del&gt;4683402335df506f3c18b7c90882d6bb&lt;del&gt;0d0550da87a784680d89f229514fdf43&lt;del&gt;0&lt;del&gt;194&lt;del&gt;13&lt;del&gt;1&lt;entryend&gt; &lt;playdel&gt; &lt;entrystart&gt;2891627&lt;del&gt;Sugar baby&lt;del&gt;66619&lt;del&gt;Kohann&lt;del&gt;281149&lt;del&gt;Hypnotic&lt;del&gt;278dfc57f03b33244e0a0e47f6c427ff&lt;del&gt;4d964db57c1291c1b388c398e3b9c36c&lt;del&gt;0&lt;del&gt;254&lt;del&gt;1&lt;del&gt;8&lt;entryend&gt; &lt;playdel&gt; &lt;entrystart&gt;306742&lt;del&gt;Hello&lt;del&gt;58368&lt;del&gt;Clara Oleg&lt;del&gt;48180&lt;del&gt;Romantic insane&lt;del&gt;da0ef46f52f3b19833b84b2a9afdfb8b&lt;del&gt;cf33cbd5290d331adf4d83a0165f965d&lt;del&gt;0&lt;del&gt;155&lt;del&gt;1&lt;del&gt;2&lt;entryend&gt; &lt;playdel&gt; &lt;entrystart&gt;2694523&lt;del&gt;Love Everlasting&lt;del&gt;63734&lt;del&gt;Jeremy Jay&lt;del&gt;260665&lt;del&gt;Love Everlasting&lt;del&gt;19f6f785e41e0d1ea985347a16abdf2f&lt;del&gt;854a421fc411f4bded70ea297af939b1&lt;del&gt;0&lt;del&gt;206&lt;del&gt;6&lt;del&gt;1&lt;entryend&gt; &lt;playdel&gt; &lt;entrystart&gt;2834665&lt;del&gt;A sound that never sets&lt;del&gt;56094&lt;del&gt;Guns Of Brixton&lt;del&gt;275056&lt;del&gt;Cap Adare&lt;del&gt;47b54bbe4e1443cd312a572b194e5e0d&lt;del&gt;fb563af89061bd4d22d912f556f23190&lt;del&gt;0&lt;del&gt;124&lt;del&gt;1&lt;del&gt;4&lt;entryend&gt; <entrystart> = 0x02 0x00 0x07 (last one may be 0x06 in other format??) <entryend> = 0x00 0x00 0x00 <del> = 0x02 0x00 0x?? <playdel> = 0x00 0x00 0x00 Known field format: <entrystart>unk1<del>songTitle<del>unk2<del>Artist<del>unk3<del>Album<del>songId<del>unk4<del>unk5<del>songLen<del>unk6<del>unk7<entryend> I'm guessing one of the last unknowns is a key in a list of genre names that was rec'ed in an earlier request. It seems that another playlist format is also used, i'm not sure if it is similar enough to be able to be parsed by the same parser. No, they are not similar enough. The concept seems to be similar but there are significant differences in the formats. Notably, the second one had a closing tag which notes the field number. Also, I'm working on the status page for PS, to allow playpause/skip/songinfo etc remotely. Blame brofix, for he made me look at this.
  23. Post the log here if you don't mind ( go to http://127.0.0.1:8888/log ) Also, what is your internet connection? - A note, if one's internet connection is slower than 1.6 mbs (download speeds less than 200kb/s max) you should use low bandwidth mode in SProxy settings, as your connection is too slow to allow regular mode from working correctly, never mind turbo mode. This is because Pandora is very impatient for data, only allowing 10 seconds for transfer to start from the time connection succeeded, before trying to download another song, and so on. It will sniff many songs and possibly rip some but pandora will not play properly.
  24. Current playing song is easy enough - It'd just check the fader window for the current info it has. Simple enough. (it knows all the song data for the current song it is displaying). Just looked at openpandora. It in short sends key messages to pandora to have it do the work. However, that's the same approach I use, so I can implement that too. I didn't know +/- keys would rate a song on pandora.
  25. I've not decided how to handle source at the moment (and need to clean some stuff up anyways, some stuff is a bit of a hack). Probably would have to use some sort of source control system and fix SProxy's internals (IE no more renaming stuff for me) Download the current song can be already be done remotely - go into sproxy advanced settings, and change the setting "AllowNonLocal" to "True" from "False". This will allow you to connect to sproxy's status page remotely, which has download controls on it. Make sure that computer does not have port forwarded, as it essentially is an unprotected proxy server. Actually, this would work, except that at the moment it assumes 127.0.0.1 in PS. I'll have to fix that before this will work. Remote thumbs up/down - Dunno. It would require forging a request, and I'm not entirely sure all the fields that would be needed to do so. Remote play/pause and skip - yeah it can be done with a little bit of work. Just have to have the helper running so ps can pass on the request properly. It would also be possible to have the song fader stuff integrated, but that too would require the fader to be launched. (the fader and helper are nearly their own apps in themselves, with only minimal integration on the part of the fader, and none for the helper)
×
×
  • Create New...