GetID3 analyze() function new file size parameter

You can now read ID3 (media file headers) information from mp3 and other media files using GetID3 library without having the entire media file present. The new 2nd parameter to the analyze() member function allows you to detect play time duration with only a small portion of the file present.

Years ago I added this code to the versions of the getid3 library we packaged with the Blubrry PowerPress podcasting plugin. I’ve submitted this code to the getid3 project so everyone can benefit. As of GetID3 v1.9.10,  you can now pass a second optional parameter specifying the total file size. This parameter sets the file size value in the getid3 object, skipping the need for the library call the filesize() function.

This is the secret sauce that allows PowerPress to detect the file size and duration information from a media URL of any size in only a few seconds.


The new parameter only works if the following are true:

  • Have enough of the beginning of the media file that includes all of the ID3 header information. For a typical mp3 the first 1MB should suffice, though if there is a large image within your ID3 tags then you may need more than 1MB.
  • Have the total file size in bytes.
  • The mp3 file is using a constant bit rate. This must be true for podcasting, and highly recommended if the media is to be played within web browsers. Please read this page for details regarding VBR and podcasting.

Example Usage

// First 1MB of episode-1.mp3 that is 32,540,576 bytes
// (approximately 32MB)
$media_first1mb = '/tmp/episode-1-partial.mp3
$media_file_size = 32540576;
$getID3 = new getID3;
$FileInfo = $getID3->analyze( $media_first1mb, $media_file_size );

You can use a HTTP/1.1 byte range request to download the first 1MB of a media file, as well as a HTTP HEAD request to get the complete file length (file byte size).

Byte range requests and HEAD requests are safe to use for podcasting. If a service does not allow HEAD requests or accepts byte range requests, then they will have bigger issues to deal with as these features are required by iTunes.

Blubrry PowerPress podcasting plugin has been using this logic to detect mp3 (audio/mpeg), m4a (audio/x-m4a), mp4 (video/mp4), m4v (video/x-m4v), oga (audio/ogg) media since 2008.

Not all media formats support this option. You should test any format not mentioned above. For example, ogg Vorbis audio works, ogg Speex audio does not.

Where to find your user contributed images you’ve submitted to over the years you’re not aware, last Summer (August 15th I believe) removed the “User Contributed Images” feature. If you’re like me and uploaded additional product images and wanted to find them for reference, you’re going to be searching for a very long time.

To find your uploaded images, go to, sign-in, then navigate to your profile. (or try this link: Once you are viewing your profile, click the “images” tab just below the “Contributions” heading. When viewing with Google Chrome the larger size images do not load. Firefox seems to not have an issue.

What is available:

  • Tiny thumbnail image
  • Title / Caption
  • In-image notes

I think this is a real bummer as many of my product reviews reference the images. I’m now in the process of writing blog posts of these product reviews with the images.

Project Trans Am – Month 35, Interior Coming Together

I’ve moved the monthly updates on Project Trans Am to my Mods and blog and podcast.

My latest post covering everything I’ve done last August with photos is available here:

Outline of Accomplishments LAST MONTH

  • Insulation Completed
  • Carpet Installed
  • Kick Panels, 1/4 Panels and Sill Plates installed
  • Oil Pressure and Water Temperature Lines Installed
  • Added a 4 Blade Fuse Block in Glove Box
  • T-top Headliner Cut and Glued

IMG_20130324_182622 IMG_20130310_200404 IMG_20130323_180652 IMG_20130323_180748

Car is finally coming together! I should have the interior back together this April. If I can stay on schedule hopefully Fathers day weekend the Trans Am will be back on the road!

Fall 2012 Home Improvements

Somehow I’ve had some time to do some home improvements over the past couple of months, mostly the past few weeks.

Pressure Washed and Painted the Fence

With the neighbors help, I got the fence painted! Nothing special, we used the same Cabot Cedar stain as before. The first coat lasted 4 years, though it could have used a coat a year ago. Pressure washing showed a lot of black staining over the years, and I repaired one broken picket, otherwise the fence looked great.

Lamp Post Replaced with Solar LED Post Light

I’ve been thinking about repairing the leaning post and replace the natural gas lamp light with a solar powered one. Last weekend the weather was finally warm enough for me to investigate. After digging around the post about 3-4″ deep, the post fell over. Quick examination I found the post completely rusted through. Fixing the lamp post turned into a replacing the lamp post project. I proceeded to dig out the hole beyond the frost line, about 34 inches deep.

I thought I could find a simple replacement lamp post at Lowes/Home Depot, but guess again, they sell more complicated posts that are way over priced. Since I don’t need a fancy post with an extra electrical socket built-in, I found a simple and affordable post at Menards, though it required a trip across town. When I got back, I just had enough time to pickup 2 bags of concrete, mix and then set the post before nightfall.

While I was disconnecting the gas line to the lamp post I went ahead and removed the line to the gas meter and capped it with a 1/4″ NPT cap.

The following Wednesday the solar powered lamp I ordered arrived. It only took 5 minutes to install. Compare that to the entire day it took to replace the post! We had to wait another day to see if it would charge and light up. Thursday night it came on when the sun fell. As expected, it put out a comparable amount of light to that of a gas lamp. Three hours later  the battery died. Luckily you can add a 2nd battery pack to extend the battery life. I knew the light from an LED solar powered lamp would not be as bright as a electric light bulb, but it is as effective as the gas lamp it replaced. If it could just last a little longer into the night then we’ll be all set. Most important though the yard looks good again!

Solar Powered LED Post Lamp

Front Door Sealed

In October I decided it was time to do something about the draft under the front door. I first replaced the bottom gasket with a one size fits all 4 blade model at Home Depot. I quickly discovered the bottom seal of the door was not designed for the gasket I had purchased. After a few days of the family struggling to open/close the door, I decided to modify the gasket by removing the first 2 blades with a utility knife. It did the trick, but it also allowed a slight draft at the corners of the door. The draft was due to the door sill plate having a slight pitch running outside (rather than flat or to the inside). This pitch is also why the newer gasket was so hard to open/close the door.

This past weekend I decided to fix the entire problem by replacing the bottom sill plate. It was not as easy a task as I thought it would be since the original door sill plate was attached to the door frame, rather than the sill plate attached to the bottom house framing. Once it was removed, it was just a slow process fitting the replacement sill plate in place. I put a small bead of silicone between the sill plate and the house framing to insulate between the two joints. I also had to add about 1/4″ of spacers to the assembly of the sill plate so the top of the sill was tight against a new 4 blade door gasket. It did the job, the door is now easy to open and close and it’s air tight!

Future Home Projects

There are a lot of things we’d like to do with the house, such as finish part of the basement, redo the master bathroom, upgrade the bathroom fixtures throughout the house, and install a wood laminate flooring on the first floor. Perhaps 2013 I’ll have something more exciting to blog about as far as home improvements are concerned.

Project Trans Am – Month 30, Focus on Interior

I’ve moved the monthly updates on Project Trans Am to my Mods and blog and podcast.

My latest post covering everything I’ve done last August with photos is available here:

Outline of Accomplishments

  • New Windshield Installed
  • Interior  hard plastics and metal restored (except headliner, seats and carpet)
  • Carpet and headliner material ordered
  • Inner fenders painted
  • Wiring problems assessed and added 4 relays to power windows with my own changes

Window Interior

Plans for November

  • Remove rust from floors, paint, and seal seams
  • Install sound deadener and insulation in passenger compartment
  • Install carpet, dashboard steering column and center console
  • Slowly install remaining interior while working on the motor

Hopefully I can get the interior far enough that all the necessary gauges and wiring is hooked up so I can focus on finishing and installing the new motor.

Project Trans Am – Up to October 2012

My Trans Am resto-mod project is finally coming together!

October is ending up as the interior and wiring month for the project, something I’m more comfortable working on frankly. The interior parts have been refurbished with fresh coats of interior paint applied. The electrical wiring is being evaluated currently, the plan is to reuse the existing harnesses as much as possible and only repair as necessary. Check out some pics of the freshly restored interior.

Hopefully over the next 2 weekends I will have all the wiring fixed, dash installed and sound deadener/insulation with carpet installed, which will allow me to think about installing the engine this November!

Check out the work I did last month on blog: