code: def _create_media_urls(
      collection: SampleCollection,
      sample: t.Dict,
      cache: t.Dict,
      additional_fields: t.Optional[t.List[str]] = None,
      opm_field: t.Optional[str] = None,
  ) -> t.Dict[str, str]:
      filepath_source = None
      media_fields = collection.app_config.media_fields.copy()
  
      if additional_fields is not None:
          media_fields.extend(additional_fields)
  
      use_opm = (
          collection.media_type == fom.POINT_CLOUD
          or collection.media_type == fom.GROUP
      )
      opm_filepath = (
          f"{opm_field}.{_ADDITIONAL_MEDIA_FIELDS[OrthographicProjectionMetadata]}"
          if use_opm
          else None
      )
      filepath = None
      media_urls = []
  
      for field in media_fields:
          path = _deep_get(sample, field)
  
          if path not in cache:
              cache[path] = path
  
          if use_opm and opm_filepath == field:
              filepath_source = path
              filepath = path
          elif field == "filepath":
              filepath_source = path
              filepath = path
  
          media_urls.append(dict(field=field, url=path))
  
      return filepath, filepath_source, media_urls
  
imports: from enum import Enum
  import logging
  import shutil
  import struct
  import typing
  from functools import reduce
  import asyncio
  import aiofiles
  import strawberry
  import eta.core.serial
  import eta.core.utils
  import eta.core.video
  import fiftyone.core.fields
  import fiftyone.core.labels
  from fiftyone.core.collections import SampleCollection
  from fiftyone.utils.utils3d import OrthographicProjectionMetadata
  import fiftyone.core.media
label_desc: Use image node_id 1 for calling a global function with example usage: _create_media_urls(collection, sample, cache, additional_fields, opm_field) and returns: filepath,  filepath_source,  media_urls