code: def extract_links_from_supplement(self, element_id):
          
          logging.debug(
              'Gathering supplement URLs for element_id <%s>.', element_id)
  
          try:
              dom = get_page(self._session, OPENCOURSE_SUPPLEMENT_URL,
                             json=True,
                             course_id=self._course_id,
                             element_id=element_id)
  
              supplement_content = {}
  
              # Supplement content has structure as follows:
              # 'linked' {
              #   'openCourseAssets.v1' [ {
              #       'definition' {
              #           'value'
  
              for asset in dom['linked']['openCourseAssets.v1']:
                  value = asset['definition']['value']
                  # Supplement lecture types are known to contain both <asset> tags
                  # and <a href> tags (depending on the course), so we extract
                  # both of them.
                  extend_supplement_links(
                      supplement_content, self._extract_links_from_text(value))
  
                  instructions = (IN_MEMORY_MARKER + self._markup_to_html(value),
                                  'instructions')
                  extend_supplement_links(
                      supplement_content, {IN_MEMORY_EXTENSION: [instructions]})
  
              return supplement_content
          except requests.exceptions.HTTPError as exception:
              logging.error('Could not download supplement %s: %s',
                            element_id, exception)
              if is_debug_run():
                  logging.exception('Could not download supplement %s: %s',
                                    element_id, exception)
              return None
docs: Return a dictionary with supplement files (pdf, csv, zip, ipynb, html
          and so on) extracted from supplement page.
  
          @return: @see CourseraOnDemand._extract_links_from_text