the code above only fetches smart albums. if you also need albums created manually from user, you must fetch them, too: PHFetchResult *userCollections = [PHCollectionList fetchTopLevelUserCollectionsWithOptions:nil]; and if you need sync’d albums: PHFetchResult *syncedAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum subtype:PHAssetCollectionSubtypeAlbumSyncedAlbum options:nil]; user collections tested, sync’d collections not tested yet because I don’t need them