title: importing song as mp3 from the ipod music library to the App
body: <p>I am making an audio app. In which I have pick a song from iPhone device audio library then I want to save it to my app document folder as in mp3 format. i tired alot of codes, but they import the file in m4a format, and when i rename it to mp3, the album art and all the meta data vanished from the file.i used the below code , but it import the file as in m4a format.</p>
  
  <pre><code>NSString *songTitle = [item valueForProperty:MPMediaItemPropertyTitle];
  NSString *artist = [item valueForProperty:MPMediaItemPropertyArtist];
  NSString *album = [item valueForProperty:MPMediaItemPropertyAlbumTitle];
  MPMediaItemArtwork *artwork = [item valueForProperty:MPMediaItemPropertyArtwork];
  UIImage *artworkImage = [artwork imageWithSize:CGSizeMake(250.00, 250.00)];
  AVMutableMetadataItem *artistMetadata = [[AVMutableMetadataItem alloc] init];
  artistMetadata.key = AVMetadataiTunesMetadataKeyArtist;
  artistMetadata.keySpace = AVMetadataKeySpaceiTunes;
  artistMetadata.locale = [NSLocale currentLocale];
  artistMetadata.value = artist;
  
  AVMutableMetadataItem *albumMetadata = [[AVMutableMetadataItem alloc] init];
      albumMetadata.key = AVMetadataiTunesMetadataKeyAlbum;
      albumMetadata.keySpace = AVMetadataKeySpaceiTunes;
      albumMetadata.locale = [NSLocale currentLocale];
      albumMetadata.value = album;
  
      AVMutableMetadataItem *songMetadata = [[AVMutableMetadataItem alloc] init];
      songMetadata.key = AVMetadataiTunesMetadataKeySongName;
      songMetadata.keySpace = AVMetadataKeySpaceiTunes;
      songMetadata.locale = [NSLocale currentLocale];
      songMetadata.value = songTitle;
  
      AVMutableMetadataItem *imageMetadata = [[AVMutableMetadataItem alloc] init];
      imageMetadata.key = AVMetadataiTunesMetadataKeyCoverArt;
      imageMetadata.keySpace = AVMetadataKeySpaceiTunes;
      imageMetadata.locale = [NSLocale currentLocale];
      imageMetadata.value = [NSData dataWithData:UIImagePNGRepresentation(artworkImage)]; //imageData is NSData of UIImage.
  
      NSArray *metadata = [NSArray arrayWithObjects:artistMetadata, albumMetadata, songMetadata, imageMetadata, nil];
  
      //convert MPMediaItem to AVURLAsset.
      NSURL *assetURL = [item valueForProperty:MPMediaItemPropertyAssetURL];
      AVURLAsset *songAsset = [AVURLAsset URLAssetWithURL:assetURL options:nil];
  
      //get the extension of the file.
      NSString *fileType = [[[[assetURL absoluteString] componentsSeparatedByString:@"?"] objectAtIndex:0] pathExtension];
  
      //init export, here you must set "presentName" argument to "AVAssetExportPresetPassthrough". If not, you will can't export mp3 correct.
      AVAssetExportSession *export = [[AVAssetExportSession alloc] initWithAsset:songAsset
                                                                   presetName:AVAssetExportPresetPassthrough];
  
      NSLog(@"export.supportedFileTypes : %@",export.supportedFileTypes);
      //export to mov format.
      export.outputFileType = @"com.apple.quicktime-movie";
      export.metadata = metadata;
  
      NSString *extension = (__bridge  NSString *)UTTypeCopyPreferredTagWithClass((__bridge  CFStringRef)export.outputFileType, kUTTagClassFilenameExtension);
  
      NSLog(@"extension %@",extension);
      NSString *path = [NSString stringWithFormat:@"%@/%@.%@",self.folder.fullPath, songTitle, extension];
  
      NSURL *outputURL = [NSURL fileURLWithPath:path];
      export.outputURL = outputURL;
      [export exportAsynchronouslyWithCompletionHandler:^{
          if (export.status == AVAssetExportSessionStatusCompleted) {
          }
          else
          {
              NSLog(@"%@",export.error);
          }
      }];
  </code></pre>