code: def skip_id3(fileobj):
      
  
      # WMP writes multiple id3s, so skip as many as we find
      while True:
          idata = fileobj.read(10)
          try:
              id3, insize = struct.unpack('>3sxxx4s', idata)
          except struct.error:
              id3, insize = b'', 0
          insize = BitPaddedInt(insize)
          if id3 == b'ID3' and insize > 0:
              fileobj.seek(insize, 1)
          else:
              fileobj.seek(-len(idata), 1)
              break
docs: Might raise IOError