Allow visitors to see a full listing of your entire iTunes music collection
This plugin import the music information from your iTunes Library into WordPress. Once imported, you can print the contents of your library to a WordPress page.
My Music section of this site uses Tune Library to generate its contents.
Donations
If you feel generous and really like this plugin, here is a donation link on Paypal:
Hi Yannick.
I have downloaded and installed the iTunes WP Plugin, when I try top import the XML file the following error happens:
Connecting to MySQL…Loading iTunes library file… (http://martinhomepage.com/wordpressBlog/wp-content/plugins/tune-library/iTunesMusicLibrary.xml)
Warning: domdocument() expects at least 1 parameter, 0 given in /home/content/s/p/m/spmartin/html/wordpressBlog/wp-content/plugins/tune-library/tune-library.php on line 202
Fatal error: Call to undefined function: load() in /home/content/s/p/m/spmartin/html/wordpressBlog/wp-content/plugins/tune-library/tune-library.php on line 203
What have I done wrong?
Regards
Stephen Martin
LikeLike
Sorry for the last of response. Easter week-end was quite busy for me. I will look into the issue tonight.
One question, did you remove the spaces from the file name of your iTunes library? Have you already removed the file from the plugin folder? I tried to access it but could not.
It almost sounds like the file was loaded on your FTP site but with an empty content.
Yannick
LikeLike
Could you possible send me your iTunes Library File so that I can try to load it? Just fill in the form in the Contact Me section and attach your file to it. While it will tell me what type of music you listen to, the XML file does not give me access to any other info about your system.
LikeLike
I'm receiving these error messages:
Connecting to MySQL…Loading iTunes library file…(etc/wp-content/plugins/tune-library/iTunes Music Library.xml)
Warning: domdocument() expects at least 1 parameter, 0 given in etc/wp-content/plugins/tune-library/tune-library.php on line 202
Fatal error: Call to undefined function: load() in etc/wp-content/plugins/tune-library/tune-library.php on line 203
LikeLike
My apologies, Yannick, I truncated the full URL so as not to make public a directory structure which my hosting service uses, but which also reveals personal information. I shall send, via your CONTACT link, the full URL of the error messages, the URL in my WP config (different from the error message) and my iTunes XML file.
LikeLike
Great plug-in, especially the last update that "dynamically" loads my (very large) iTunes Library. Only suggestion I have is, when selecting an Artist, for example, that has many "albums" underneath, when the list expands (drops down), it should really be indented hierarchically. That's it (unless you can make it actually **play** my iTunes tracks 🙂
LikeLike
Actually, you can create some indentation between artists, albums and tracks by creating styles in your blog's stylesheet to create some margins. Here is a list of the styles that I created in my template to get the look on my music page:
.ArtistHeader{
padding-left:20px;
margin: 6px 0px 6px 0px;
}
.AlbumTitle {
padding-left: 20px;
margin: 6px 0px 6px 0px;
}
.AlbumListHeader {
padding-left: 20px;
margin: 6px 10px 6px 10px;
}
.TrackList{
padding-left: 20px;
margin: 5px 0px 5px 0px;
}
LikeLike
I love your plugin! I had been wanting some way to share my music collection, a list of the collection anyway, online for a while now. Your plugin works great however I'm seeing a lot of albums with no tracks which I assume is a problem with my xml file. I'll investigate that and get it figured out.
The other issue, one you might be able to help with, has to do with the size of my collection. I simply have too many songs to list them all at once. Not only does the page take an incredibly long time to load, it's much too long. I'm thinking we need some sort of pagination. Something like the pagination on Digg and Flickr, but letters rather than numbers, and on hover show how many artists there are for that letter. For letters that have no artists, the link should be disabled and greyed out.
I'm thinking ajax would be slick for swapping in the artists as you click the various links, but due to the amount of data, that might not work so well. I guess just transferring the actual data in json format and then having JavaScript build the layout would work, but that seems overly complicated so I think having it swap pages would be the simpler way to go.
Any thoughts on this? I know your collection is much smaller and looks real nice on a single page so you may not be interested in doing anything with pagination. I'm sure I'm not alone in needing this feature however.
Either way, you have a great plugin!
-Blimey
LikeLike
Thanks for the feedback on Tune Library. The functionality that you are describing does sound like it would be quite useful to more than one Tune Library user. I will investigate how it could be implemented in the next week or two. I am not familiar with AJAX programming and have not even done a WordPress plugin that receives arguments yet, but I am always eager to learn something new. I will write updates as I investigate this.
LikeLike
I am making some good progress at adding some alphabetical filtering for Tune Library. Stay tunes for an update later this week.
LikeLike
Hello. Great work on making the ordering hierarchical. Question: on your music page, you, at first, only show a partial list of of your library, with a "show all" option. How do I configure tune-library to do this? Also, if I include any text on the page with the tune-library tag, it goes to the bottom of the generated list, even if I stick it before the tag, as in an headline.
LikeLike
Hi Larry,
All you need to do is to check the option "Filter artists by letter and show alphabetical navigation" and you will only see artists for one letter at a time. You can then check the Display "Show All" in Navigation Menu option to see Show All next to the list of letters to choose from.
I saw the issue with the text appearing at the bottom no matter where you put the text but have not found a way to address this yet. I will post a new version as soon as I resolve this issue.
Yannick
LikeLike
Hi Larry,
Version 1.4 should address the issue that you reported. The Tune Library output will now show up where the [tune-library] shortcode is placed on the page.
Yannick
LikeLike
I get an error message when I click on the Import iTunes Library link.
Connecting to MySQL…Loading iTunes library file… (http://www.jason-saggers.com/wp-content/plugins/tune-library/iTunes Music Library.xml)
Fatal error: Cannot instantiate non-existent class: domdocument in ****wp-contentplugins une-library une-library.php on line 208
My xml file is around 9mb, would that be a problem?
I also get this on the music page that I created.
WordPress database error Table 'jason_wordpress.wp_tracks' doesn't exist for query SELECT min( substring( artist, 1, 1 ) ) as letter FROM wp_tracks where artist != '' made by require, require_once, include, the_content, apply_filters, call_user_func_array, do_shortcode, preg_replace_callback, do_shortcode_tag, call_user_func, tune_library_func, tune_library WordPress database error Table 'jason_wordpress.wp_tracks' doesn't exist for query SELECT distinct artist, 'artist' as source FROM wp_tracks where artist != '' and artist like '%' order by artist made by require, require_once, include, the_content, apply_filters, call_user_func_array, do_shortcode, preg_replace_callback, do_shortcode_tag, call_user_func, tune_library_func, tune_library
Which I assume is because I haven't imported the xml file correctly.
LikeLike
Hi Jason,
I have imported a larger iTunes file successfully, so I don't think that it is the issue. Something that you might want to try is to remove the spaces in the file name and then trying to import it again.
Let me know if you are still having problems after trying this.
Yannick
LikeLike
Hey,
I've been attempting to get this plugin to work for a while now, had some issues due to PHP keeping it from working but managed to get that all figured out. However, now the plugin appears to 'work', and does nothing. When you upload the file:
Connecting to MySQL…Loading iTunes library file… (http://blog.aethernavale.net/wp-content/plugins/tune-library/iTunesMusicLibrary.xml)
…done
Problem is, nothing has actually occurred. No new tables were added to the SQL databases. Any ideas on what could be causing that issue?
Thanks~
LikeLike
Michael,
I am really puzzled about the fact that no messages were printed and no tables were created. Could you potentially send me your library file via XML?
Yannick
LikeLike
Hi Yannick,
Great plugin! got it working with a test library export and it's really cool. But, came to load my full library and on import library, i get a 404 and only some of the tunes load, seems to do this when import takes a while (a timeout perhaps…?): is there a maximum size for libraries?
LikeLike
I have not really experimented to find the maximum size, although I have loaded some libraries from a few users that were quite large. if you can share your library XML file with me, then I can try to load it on my test site.
LikeLike
Hi Yannick,
I had installed the iTunes plugin and could have swore that it was working properly, but now, it seems that whenever I click on a letter, it doesn't skip to that letter, instead it just appends a # at the end of the address. If I disable the AJAX function, I get a link to the letter, but when I click on artist names, it doesn't display the album list. I'd love to see if we can get this squared away as I absolutely LOVE your plugin and haven't found anything else that provides this type of functionality.
LikeLike
I can send you a download link if you send me an email or tweet me; it's a 16mb file if that helps.
Thanks for looking into this 🙂
LikeLike
Just a quick note, the plugin doesn't seem to recognize any music added to my library after upgrading to iTunes 9.0. i don't know if this is an issue with the plugin, or an issue in the way that the new version of itunes writes the xml. i tried uploading the xml file today, but see no new additions. hopefully this can be fixed as i love your plugin.
LikeLike
Hi Rob,
Thanks for the comment. I will investigate this issue in the coming week. I was busy working on a major update to one of my other plugins which I released yesterday.
I will keep you posted.
LikeLike
Yannick,
Looking forward to it!
LikeLike
any progress?
LikeLike
Hi Rob,
I just tried importing my current iTunes library, which I updated and added items to using iTunes 9.0.1 and all items, old and new, showed up correctly after the import. Could you potentially send me a copy of your iTunes library XML file so I can try it out on my test server as well as inspect the contents to see if anything is different in the new entries. If the file is too large, I can give you access to my Dropbox.
Yannick
LikeLike
Yannick,
I'll try to import it again and if that doesn't work I'll gladly send you my XML file. Although you'll need to give me your dropbox access as the xml is about 65megs…
LikeLike
Yannick,
Imported it again, still nothing that I added after upgrading to 9.0 is showing up… mind emailing me your dropbox info?
LikeLike
I just added you to a shared folder in my dropbox. Does that automatically send you an e-mail? I am fairly new to dropbox.
LikeLike
It did send me an email, I've uploaded the XML to your dropbox.
LikeLike
Thanks Rob. Could you point out to me some of the items that you added since you upgraded to iTunes 9 and other items which were in your collection previously? This will help me in analysing what changed in the XML file.
LikeLike
Hi Rob,
I uploaded your XML file to my test server and imported your music collection. From looking at the results quickly, everything seems to have been uploaded, including the latest entries to the file that were dated from a few days ago. Can you take a look at the results and tell me if you see something specific that is missing?
http://testsite.nayanna.biz/my-music/#
Yannick
LikeLike
Yannick,
Sure enough, everything is there on your test site. Now I'm clueless as to why it doesn't show up on my server when I import it…
LikeLike
Ok, so I deactivated the plugin, deleted the data, deleted the plugin, reinstalled it, reimported my data….and…
Still none of the newer artists show up…
LikeLike
Hmm… I wonder if you might have reached some sort of file size reading limit with your web host… Perhaps a test to try quickly would be, perhaps on another computer, to create a smaller library in iTunes 9 and see if that loads correctly or not.
LikeLike
i'll have to try that out.
LikeLike
Yannick,
Thanks for the suggestion. It appears that after changing the filesize limit in my php.ini to 128 from 64 all is once again right with the world. Thank you for your assistance and patience!
LikeLike
I am glad to hear that my hunch on the file size was accurate. Thanks for letting me know of the fix. I am glad you had access to change this configuration on your server.
LikeLike
Yup. Although I don't know how many people would have an iTunes XML > 64M. But if they do, at least they'll be able to reference these notes.
LikeLike
Ok, so one more thing…
If I enable the option "Use Album Artist instead of Artist when present"
the # at the beginning of the nav, is no longer clickable.
If i disable (uncheck) this option, it is clickable again…
any ideas?
LikeLike
That was a bug in the code. Since all of my tracks with artists with names not starting with a letter were part of compilations, I had not noticed that it never appeared. I just published a new version, 1.4.2, to address the issue. It should soon be available for download.
LikeLike
Yannick, you are absolutely awesome!
LikeLike
Very cool plugin. Any chance you could make it work with windows media player??? 🙂
LikeLike
That's an interesting thought, but not an easy one since I found the code to parse the iTunes library and save it in a database. I will do some research to see if I can find a parser for the WMP library and then see how much work it would be to add that feature.
LikeLike
Sweet!! Thanks for looking into it Yannik.
LikeLike
How much does this increase my database by?
Or is that a silly question?
LikeLike
Hi Jason, Not a silly question at all. All my plugin does is to extract textual information about your music and store this text in your database. So it won't increase the size of your database that much. The increase in size is directly related to the size of your collection and the names of artists and tracks in your collection. So liking Rush more than Emerson, Lake and Palmer would use up less space 🙂
LikeLike
Yannick,
Amazing. Are you available for hire for a project very related to this plugin you created?
LikeLike
I really like the idea. I got a problem though. I Inserted The code in quotations " [tune-library]" I tried removing and it still won't show up in the page. The source code for the page shows its there. I can see your page but not mine. I'm tested with both chrome and firefox. Latest versions of course.
I also tested it with 5 other brand new themes. Not sure what the deal is but if you could help me out that wuld be great. I'm using the latest version of wordpress also.
I do have a feature request. Pull xml file from a url on your host. Set intervals for it to update.
LikeLike
Hi Andrew,
The code not getting translated into the actual output usually just means that the plugin is not activated correctly or that the keyword has a typo it.
Did you XML library's import work correctly into the plugin? If so, then things should display.
If you want, you can create a temp admin account on your blog and I will connect remotely and double-check that everything is configured as needed for this to work.
LikeLike
Yannick,
It's not showing up in my page. I am using the latest wp install along with firefox and chrome. My library is quite large around 5500 songs. The source code for both firefox and chrome show the code for the library it just won't render it and show it. Any ideas what could be going wrong?
LikeLike
I'm not to smart apparently. When I installed it I uploaded the XML file but when I unistalled it and then reinstalled it the XML wasn't picked up even though the directory hasn't changed.
LikeLike
Hi Andrew,
I am not sure I understand why you uninstalled the plugin and re-installed it. The plugin only read data from the XML file when you press the import button. Afterwards, the data is stored in your blog's MySql database and access from that repository.
LikeLike
Yannick,
Since it wasn't working the first time I thought that maybe it didn't get installed correctly.
Not sure why it didn't pull data from the mysql database though. That's strange
LikeLike
Hello Yannick,
I have tried your plugin and I love it, if I was not constantly broke I would make a donation for it. I do have a question about it though. I have noticed that for some reason many of the entries are lacking information beyond the initial listing.. I was wondering what might cause that? could it be that the information the plugin seeks is simply not there for some reason? an example would be the 1980's collection I have it only lists the following:
1980's Collection
Hunting High and Low
Sounds of the Eighties – 1980
Sounds of the Eighties – 1981
Sounds of the Eighties – 1982
Sounds of the Eighties – 1988
Sounds of the Eighties – The Early '80s: Take Two
Sounds of the Eighties – The Early 80s – Take Two
Sounds Of The Eighties – The Rolling Stone Collection (1986-1987)
Sounds of the Eighties – The Rolling Stone Collection – 1980-1981
Sounds of the Eighties – The Rolling Stone Collection – 1982-1983
Sounds of the Eighties – The Rolling Stone Collection – 1983-1985
Sounds of the Eighties – The Rolling Stone Collection – 1987-1988
Sounds of the Eighties – TV Themes of the '80s
Sounds of the Eighties- The Rolling Stone Collection – 1988-1989
beyond that it displays nothing. I know the plugin is working because many of the other listings show the sing titles as it should. Any Idea's?
LikeLike
Hi Shawn, Sorry for the late reply. I was travelling for work when you sent this question in and am still playing catch-up. I would have to look at your iTunes XML data to see why this problem is happening. Could you send it to me at ylefebvre "at" gmail.com?
LikeLike
Hi Yannick,
Great idea for a plugin. I'm relatively new to website creation, and I'm not sure exactly how to get this working. i downloaded, installed, and activated the plugin, but not sure where the code is to add it to a page, or what to do next. Might you be able to help walk me through it? I use WordPress, in case that matters. Thanks!
LikeLike
Hi Jake,
All you need to do to see the output is to create a WordPress page, then type the text [tune-library] in the page's main body text.
LikeLike
Where do you put the iTunes XML file? Do you leave it in the iTunes folder? I can't tell if it's working from there.
LikeLike
Hi Jake, You upload your iTunes XML file to your web server in the tune-library server, then press the import button in the plugin's admin page.
LikeLike
Sure I can send a copy over. I was thinking it might have to do with the really long names but it could be missing information for all I know. never thought to read the XML.. but I shall send it over. =) thanks for looking.
LikeLike
I was wondering if you had any luck with what I sent you??
LikeLike
Hi Shawn. Sorry about that. It seems I lost that mail in the shuffle as I was about to leave for a trip when it came in. I will try to get to this in the next day or two.
LikeLike
no problem… stuff happens. If you need a fresh xml dump from my itunes I can do that for you again.
LikeLike
Great plugin! How do I insert the library into a new page? I can't find an option or any code to paste. Many thanks
LikeLike
Hi Stuart, All you have to do is to add the shortcode [tune-library], with the brackets, to the content of the page where you want the library to be displayed. This is documented in the installation instructions here: http://wordpress.org/extend/plugins/tune-library/…
LikeLike
Hi Yannick,
Thanks for the info, I tried adding [tune-library] to the page, but it just comes out blank (http://stuchill.com/?page_id=345)
The xml file imported with no problems and I can't see anything I have missed. Do you have any idea what it could be? Would love to get this plugin working, been looking for something similar for ages!
Regards,
Stuart
LikeLike
I just checked the pages source code and here is the entry for tune-library:
<!– Tune Library 1.4 Output –>
var plusImg = new Image();
plusImg.src = "http://stuchill.com/wp-content/plugins/tune-library//plusbl.gif"
var minusImg = new Image()
minusImg.src = "http://stuchill.com/wp-content/plugins/tune-library//minusbl.gif"
function showAlbums() {
if (document.getElementsByTagName)
x = document.getElementsByTagName('div');
else if (document.all)
x = document.all.tags('div');
for (var i=0;i<x.length;i++)
{
if (x[i].id.indexOf("Set") != -1) {
x[i].style.display = "";
}
}
if (document.getElementsByTagName)
x = document.getElementsByTagName('img');
else if (document.all)
x = document.all.tags('img');
for (var i=0;i<x.length;i++)
{
if (x[i].id.indexOf("Set") != -1) {
x[i].src = minusImg.src;
}
}
}
function hideAlbums() {
if (document.getElementsByTagName)
x = document.getElementsByTagName('div');
else if (document.all)
x = document.all.tags('div');
for (var i=0;i<x.length;i++)
{
if ((x[i].id.indexOf("Set") != -1) || (x[i].id.indexOf("Album") != -1)) {
x[i].style.display = "none"
}
}
if (document.getElementsByTagName)
x = document.getElementsByTagName('img');
else if (document.all)
x = document.all.tags('img');
for (var i=0;i<x.length;i++)
{
if ((x[i].id.indexOf("Set") != -1) || (x[i].id.indexOf("Album") != -1)) {
x[i].src = plusImg.src;
}
}
}
function showLevel( _levelId, _imgId ) {
var thisLevel = document.getElementById( _levelId );
var thisImg = document.getElementById( _imgId );
if ( thisLevel.style.display == "none") {
thisLevel.style.display = "";
thisImg.src = minusImg.src;
}
else {
thisLevel.style.display = "none";
thisImg.src = plusImg.src;
}
}
function showArtistLetter ( _incomingletter) {
var map = {letter : _incomingletter}
jQuery('#contentLoading').toggle();jQuery.get('http://stuchill.com/wp-content/plugins/tune-library/tune-library-ajax.php', map, function(data){jQuery('#dhtmlgoodies_tree').replaceWith(data);initTree();jQuery('#contentLoading').toggle();});
}
LikeLike