code: def get_extra_info(stderr):
      """
      avprobe sometimes gives more information on stderr than
      on the json output. The information has to be extracted
      from stderr of the format of:
      '    Stream #0:0: Audio: flac, 88200 Hz, stereo, s32 (24 bit)'
      or (macOS version):
      '    Stream #0:0: Audio: vorbis'
      '      44100 Hz, stereo, fltp, 320 kb/s'
  
      :type stderr: str
      :rtype: list of dict
      """
      extra_info = {}
  
      re_stream = r"(?P<space_start> +)Stream #0[:\.](?P<stream_id>([0-9]+))(?P<content_0>.+)\n?(?! *Stream)((?P<space_end> +)(?P<content_1>.+))?"
      for i in re.finditer(re_stream, stderr):
          if i.group("space_end") is not None and len(
              i.group("space_start")
          ) <= len(i.group("space_end")):
              content_line = ",".join(
                  [i.group("content_0"), i.group("content_1")]
              )
          else:
              content_line = i.group("content_0")
          tokens = [
              x.strip() for x in re.split("[:,]", content_line) if x
          ]
          extra_info[int(i.group("stream_id"))] = tokens
      return extra_info
  
imports: from __future__ import division
  from io import BufferedReader
  import json
  import os
  import re
  import sys
  from subprocess import Popen, PIPE
  from math import log, ceil
  from tempfile import TemporaryFile
  from warnings import warn
  from functools import wraps
label_desc: Use image node_id 14 for calling a global function with example usage: get_extra_info(stderr) and returns: extra_info