Skip to main content

Topic: Anyone willing to write an ipod plugin? (Read 17762 times) previous topic - next topic

0 Members and 1 Guest are viewing this topic.
  • saratoga
  • [*][*][*][*][*]
Anyone willing to write an ipod plugin?
Foobar's already got an amazing batch renamer, tagger and transcoder.  So it can take files, name and catalogue them on a disk and then spit out a low bitrate Nero AAC file, already replaygained for portable use.

The only thing i could still ask for would be an option for it to upload to my Ipod.  I don't even know if its possible, but i thought I'd toss out the idea.

  • Leolo
  • [*][*]
Anyone willing to write an ipod plugin?
Reply #1
Hi,

I agree wholeheartedly with this request. Currently there's no decent freeware utility to transfer mp4 songs to an iPod under Windows.

iTunes is extremely slow in my computer (an old Celeron 633 MHz), and both Ephpod and vPod screw accented Spanish characters in mp4 tags

We really need a lightweight tool to send mp4 files to our iPods that has decent unicode support.

Please!

  • d00d4h4x
  • [*]
Anyone willing to write an ipod plugin?
Reply #2
I also agree, I can't ever seem to get iTunes to work.  Also the "security features" in iTunes are always giving me trouble.

I would try to make something but I cant program c or c++ and I can't seem to work on projects that take more that a few hours. 
If you need a better signature copy this to yours!

  • saratoga
  • [*][*][*][*][*]
Anyone willing to write an ipod plugin?
Reply #3
Are there specs out there for how the Ipod's database works?  I know little c++, but I'd still like to look at it.

  • d00d4h4x
  • [*]
Anyone willing to write an ipod plugin?
Reply #4
I did find one site Here that might be helpful.  It seems fairly close to the same as my 3rd Gen. 20gig uses.

P.S.
The database file is in '?:\iPod_Control\iTunes\'
The file name is 'iTunesDB'
If you need a better signature copy this to yours!

  • Otto42
  • [*][*][*][*][*]
Anyone willing to write an ipod plugin?
Reply #5
I've written several programs to parse and write the iPod's database file. I'd be glad to help in any way I could. I've found that finding good documentation for the iTunesDB and PlayCount files are a bit difficult, so I've taken to keeping my own notes and such. Unfortunately, my notes are probably not readable to anybody else.

In any case, I know nothing of Foobar's plugin mechanism, but if anyone wants to tackle the project, I know virtually everything there is to know about the iPod's databases. Except for smart playlists. I haven't figured those out totally yet. They're hard little bastards to reverse engineer.

  • Sid59
  • [*]
Anyone willing to write an ipod plugin?
Reply #6
that'd be cool .. the biggest draw of iTunes / iPod sync are the 25 Most played,  25 Recently PLayer, Favorites .. wouldn't the plugin need to incorporate those functions too?

a UI with that would be cool too.

  • Xecter
  • [*]
Anyone willing to write an ipod plugin?
Reply #7
Sid59,


I am 100% sure that foobar can easily replicate iTunes smartplaylists. However, foobar needs a media library before anything like that can be done.


Although i love my ipod and foobar, i can't imagine a iPod plugin at the moment due to the lack of a library.


Personally with a library, foobar will be 100x better than any player ever made. Seriously. Winamp with its library, although it works well, it lacks customization. If foobar ever had a library it would be very customizable and very easy to use.

if it ever gets made, an ipod plugin would be great. Since i can create ipod database tags from APEv2 tags instead of using crappy id3v2.

Anyways:

If a ipod plugin where to be made it would be nice to:

Customize the fields it would create in the ipod database;
instead of having the %artist% field used on my pc for the %artist% field on ipod, maybe i want to use %cdartist% or something.

Customize the sort order when browsing on the ipod? Instead of sorting
<artist> <album> <tracknumber>
maybe i want
<artist> <album> <title>



Alot can be done with an ipod plugin, but loads more can be done with a foobar library first.
 

  • mj-barton
  • [*][*][*]
Anyone willing to write an ipod plugin?
Reply #8
This would be cool.  Are they any strides toward this project.  Our has it just died.

  • saratoga
  • [*][*][*][*][*]
Anyone willing to write an ipod plugin?
Reply #9
Quote
that'd be cool .. the biggest draw of iTunes / iPod sync are the 25 Most played,  25 Recently PLayer, Favorites .. wouldn't the plugin need to incorporate those functions too?

a UI with that would be cool too.

I've never used any of that and I'd have no use for it.  I'd be happy with a simple way to have the transcoder add AACs foobar made from flacs to my Ipod, or something along those lines.  I think this should be the first priority, then later once basic stuff is in place we can worry about advanced features.

Otto42:  wow that'd be helpful.  Unfortunately my programming so far only encompasses java and straight c, not c++ as foobar uses.  Soon  I need to learn c++, so eventually i will be able to attempt this if no one steps up first.

Could you post whatever code\notes you're willing to share?  I don't mind if its unreadable, I'm a student with nothing but time on my hands
  • Last Edit: 25 January, 2004, 04:29:56 PM by Mike Giacomelli

Anyone willing to write an ipod plugin?
Reply #10
otto42: i'm pretty sure there's a large demand out there to figure out how exactly that little file works, not only for synchronisation with other software, but also so one can transfer files _off_ of the ipod easily

if you'd share what you know, i'm sure a lot of good things could happen.

  • zanson
  • [*][*][*]
Anyone willing to write an ipod plugin?
Reply #11
Quote
Unfortunately my programming so far only encompasses java and straight c, not c++ as foobar uses.  Soon  I need to learn c++, so eventually i will be able to attempt this if no one steps up first.

Side note: If you know C and Java, picking up C++ should be pretty easy, as all the OO stuff, which you should be familiar with from java is the main problem people have in switching from non-OO C to OO C++...

  • Otto42
  • [*][*][*][*][*]
Anyone willing to write an ipod plugin?
Reply #12
Quote
otto42: i'm pretty sure there's a large demand out there to figure out how exactly that little file works, not only for synchronisation with other software, but also so one can transfer files _off_ of the ipod easily

if you'd share what you know, i'm sure a lot of good things could happen.

Transfer off the iPod easily? No problem. I wrote this little tool a while back for people on the Apple forums.

iPodCopy
(If the link doesn't work, my DSL is probably down. Try again later.)

Anyway, all it does is parse the iTunesDB file enough to get some useful info and then let you copy the files off the iPod using your own format.

I can share what I know, no problem. Let me clean up my notes and post 'em somewhere. I'll get back to you.

Also, the most useful guide I've found to figuring out the iPod's databases and such has been the source code for gtkpod. Reading the code is like pulling teeth, and there's no documentation to speak of, but it does cover almost everything, if you are patient enough to look through it.

  • saratoga
  • [*][*][*][*][*]
Anyone willing to write an ipod plugin?
Reply #13
Quote
i'm pretty sure there's a large demand out there to figure out how exactly that little file works, not only for synchronisation with other software, but also so one can transfer files _off_ of the ipod easily


Ever heard of a program called foobar  Should just be able to load the ipod's music into a playlist, and use the renamer to get the orginal files back.

Quote
If you know C and Java, picking up C++ should be pretty easy, as all the OO stuff, which you should be familiar with from java is the main problem people have in switching from non-OO C to OO C++...


I hope so.  I'm doing c++, small talk and c# next semester so I hope c++ comes easy.

Quote
I can share what I know, no problem. Let me clean up my notes and post 'em somewhere. I'll get back to you.


Thanks!

  • Otto42
  • [*][*][*][*][*]
Anyone willing to write an ipod plugin?
Reply #14
Okay, here's some info to help people get started on figuring out the iTunesDB and PlayCounts files. Most of it I just copied from my notes. Note that my notes started from other notes I found on the web, I just added and refined them as I figured out new bits and such. Anyway, that's why a lot of them will look similar. It's because they are similar.

I tried to add some explanation at the top, but I'm not good at writing. About midway I gave up and just added the rest of the notes in.

So here you go. Linky

  • Scream
  • [*]
  • Banned
Anyone willing to write an ipod plugin?
Reply #15
Check Here if you are wanted to develop one, its the source code to a ipod plugin for winamp5... shouldnt be too difficult for someone to port

  • Otto42
  • [*][*][*][*][*]
Anyone willing to write an ipod plugin?
Reply #16
Quote
I am 100% sure that foobar can easily replicate iTunes smartplaylists. However, foobar needs a media library before anything like that can be done.

Although i love my ipod and foobar, i can't imagine a iPod plugin at the moment due to the lack of a library.

How about the album list? That's kind of a library, isn't it? If you have all your tracks loaded into there, then they're at least accessible by foobar plugins, I would think. Enough for you to transfer to the iPod, anyway.

As I understand it, loading stuff into foobar will add the files to the database if the database is enabled and the directory is in the restrict directories list. So why not simply make an iPod plugin transfer the contents of the database to the iPod? It should work.
  • Last Edit: 28 January, 2004, 02:10:53 PM by Otto42

  • Xecter
  • [*]
Anyone willing to write an ipod plugin?
Reply #17
Album list is a very limited version of what i have in mind. See a library would also organize everything in artists and albums, but would also keep track of year, date added/modified, play count, my rating, grouping, etc etc.

Basically every field possible.

iTunes creates a database with all your play metainfomation. With smartplaylists i can create a playlist by just adding rules. IE:

Playlist:
MyRating <=2
Playcount <=10
Genre = Trance

This would create a playlist with songs that only meet these conditions.
Also, smart playlists are 100% dynamic, both in the library and the iPod. Personally, the only reason i use iTunes is because of smartplaylists. If i didnt like smartplaylists, i would just use Ephpod.

Even if Foobar had a really kick ass library and smartlist abilities it would be 100x better than software audio player ever MADE. Let alone being able to do it on the iPod!

  • Otto42
  • [*][*][*][*][*]
Anyone willing to write an ipod plugin?
Reply #18
Quote
Album list is a very limited version of what i have in mind. See a library would also organize everything in artists and albums, but would also keep track of year, date added/modified, play count, my rating, grouping, etc etc.

Yes, but, all that *is* in Foobar's database, which the album list actually uses. What you actually display in the "album list" is totally configurable, but you can display any of that information that you like.

Quick example.. Add " | [%date%]" to the end of the "tree hierarchy" in the Album list settings. Now the year appears as a subitem of every song. The info is there and available, just not normally displayed.

Quote
iTunes creates a database with all your play metainfomation. With smartplaylists i can create a playlist by just adding rules. IE:

Playlist:
MyRating <=2
Playcount <=10
Genre = Trance

This would create a playlist with songs that only meet these conditions.
Also, smart playlists are 100% dynamic, both in the library and the iPod. Personally, the only reason i use iTunes is because of smartplaylists. If i didnt like smartplaylists, i would just use Ephpod.

The smartlist thing could be added on to Foobar's playlist functionality, I feel. All the data in the database is there to let it do it, more or less. Making smartlists transfer to the iPod is harder though because of the special smartlist MHOD types in the iTunesDB.
  • Last Edit: 28 January, 2004, 04:22:58 PM by Otto42

  • Sid59
  • [*]
Anyone willing to write an ipod plugin?
Reply #19
i think the ipod plugin would need a seperate database from albumlist. i only want certain albums / songs on my ipod. so, if it can have its own database and upload and update its self.

i can only imagine the use of this with the foo_tunes UI. That would be awesome.

  • saratoga
  • [*][*][*][*][*]
Anyone willing to write an ipod plugin?
Reply #20
Quote
Album list is a very limited version of what i have in mind. See a library would also organize everything in artists and albums, but would also keep track of year, date added/modified, play count, my rating, grouping, etc etc.

Basically every field possible.

iTunes creates a database with all your play metainfomation. With smartplaylists i can create a playlist by just adding rules. IE:

Playlist:
MyRating <=2
Playcount <=10
Genre = Trance

This would create a playlist with songs that only meet these conditions.
Also, smart playlists are 100% dynamic, both in the library and the iPod. Personally, the only reason i use iTunes is because of smartplaylists. If i didnt like smartplaylists, i would just use Ephpod.

Even if Foobar had a really kick ass library and smartlist abilities it would be 100x better than software audio player ever MADE. Let alone being able to do it on the iPod!

I don't see anything there that couldn't be done with the existing database.  All the metadata is there, you'd just need to sort it into playlists, and perhaps add something to count the times each item is played (not sure if thats already done).

Quote
i think the ipod plugin would need a seperate database from albumlist. i only want certain albums / songs on my ipod. so, if it can have its own database and upload and update its self.


You don't need a seperate database I think, just a seperate playlist.  Basically create a playlist that represents all items on the Ipod.  Keeping it syched with the Ipod would be interesting though if you're going to use iTunes as well (sinced iTunes might change a file so that foobar's playlist was out of data, I guess you'd need to parse the Ipod's database everytime you load the Ipod to make sure its up to data, hopefully parseing it would be quick enough that no one would notice the delay). 

This sucks, I've got Java, digital logic and some circuit design classes all this semester, so no time to teach myself c++ and work on these ideas

  • Xecter
  • [*]
Anyone willing to write an ipod plugin?
Reply #21
Quote
I don't see anything there that couldn't be done with the existing database. All the metadata is there, you'd just need to sort it into playlists, and perhaps add something to count the times each item is played (not sure if thats already done).


Yes. The current database is great. The database can easily be rebuilt with a library in mind. Using explorer as a start; instead of browsing thru folders, you browse via tags (ie, artist, genre, date, etc). Then add counters for playcount, and the other such values.
(ALSO: on playcount, should be kept inside the database, not rewritten to files when they are finished being played. That could problems with people using ID3v2, it should be written to the file when its tag is updated)

Once the database is turned into more of a library, smartplaylist functionality can be added.

Then once smartplaylists working with Foobar, a "complete" iPod plugin can be made.

To sync the ipod it would be simple. Just create a masterlist for the iPod; upon syncing, it would send new playcounts and ratings to songs changed on the ipod, update the items on the local PC. THen it would transfer any new songs, playlists, and new metadata, to the iPod.


Unforunately i can't be of great help. I know only very limited C++, but i would be more than happy to help you guys out in anyway possible, both with Foo_Library, and Foo_iPizzle
 

  • Otto42
  • [*][*][*][*][*]
Anyone willing to write an ipod plugin?
Reply #22
Quote
Foo_iPizzle

Foo_iPizzle's off the hizzle f'shizzle!
  • Last Edit: 28 January, 2004, 09:34:09 PM by Otto42

  • Otto42
  • [*][*][*][*][*]
Anyone willing to write an ipod plugin?
Reply #23
Okay, if anyone wants to get started working on this, here's something to get you started going on it.

I wrote a big set of classes to encapsulate and somewhat abstract the iTunesDB file structure. Basically, these classes create a one to one correspondance between what's in the iTunesDB and what's in objects in memory. Currently, they provide the ability to read the contents of the iTunesDB and manipulate it. I am working on adding the writing capabilities to it as well, to make it easy to write out an iTunesDB after you change it.

The best way to use this is to write a wrapper class that use these classes to work with. Your wrapper class would be the interface that converts from whatever structures are most convienent for you to use into the iPodDB classes.  I've provided an example wrapper class that demonstrates what I'm talking about here, as well as a "main" function that uses that wrapper class to do something semi-useful. This will let you define how you want manipulate the songs and tracks and playlists and stuff on the Foobar side of things, and will use my classes to deal with the nitty gritty of reading/parsing/creating/writing the actual iTunesDB file format itself. The wrapper class would deal with the conversion between the two, sort of thing. It'll be clear when you read the files a bit closer.

Anyway, here's the file: http://otto.homedns.org:8888/iTunes/iPodDB.zip
It's enough to get started with if someone wants to make a foobar plugin, and I'll have the writing aspects done in the next week or so, so that you'll eventually be able to just call "write" from the main iPod_mhbd class and it'll create a proper iTunesDB file for you, ready to go.

  • Aero
  • [*][*][*][*][*]
Anyone willing to write an ipod plugin?
Reply #24
I have posted the initial version of foo_pod, described in this thread.