make_supportedsites.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #!/usr/bin/env python3
  2. from __future__ import unicode_literals
  3. import io
  4. import optparse
  5. import os
  6. import sys
  7. # Import yt_dlp
  8. ROOT_DIR = os.path.join(os.path.dirname(__file__), '..')
  9. sys.path.insert(0, ROOT_DIR)
  10. import yt_dlp
  11. def main():
  12. parser = optparse.OptionParser(usage='%prog OUTFILE.md')
  13. options, args = parser.parse_args()
  14. if len(args) != 1:
  15. parser.error('Expected an output filename')
  16. outfile, = args
  17. def gen_ies_md(ies):
  18. for ie in ies:
  19. ie_md = '**{0}**'.format(ie.IE_NAME)
  20. ie_desc = getattr(ie, 'IE_DESC', None)
  21. if ie_desc is False:
  22. continue
  23. if ie_desc is not None:
  24. ie_md += ': {0}'.format(ie.IE_DESC)
  25. search_key = getattr(ie, 'SEARCH_KEY', None)
  26. if search_key is not None:
  27. ie_md += f'; "{ie.SEARCH_KEY}:" prefix'
  28. if not ie.working():
  29. ie_md += ' (Currently broken)'
  30. yield ie_md
  31. ies = sorted(yt_dlp.gen_extractors(), key=lambda i: i.IE_NAME.lower())
  32. out = '# Supported sites\n' + ''.join(
  33. ' - ' + md + '\n'
  34. for md in gen_ies_md(ies))
  35. with io.open(outfile, 'w', encoding='utf-8') as outf:
  36. outf.write(out)
  37. if __name__ == '__main__':
  38. main()