]> jfr.im git - yt-dlp.git/blob - devscripts/make_supportedsites.py
[cleanup] Upgrade syntax
[yt-dlp.git] / devscripts / make_supportedsites.py
1 #!/usr/bin/env python3
2 import optparse
3 import os
4 import sys
5
6
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
12
13 def main():
14 parser = optparse.OptionParser(usage='%prog OUTFILE.md')
15 options, args = parser.parse_args()
16 if len(args) != 1:
17 parser.error('Expected an output filename')
18
19 outfile, = args
20
21 def gen_ies_md(ies):
22 for ie in ies:
23 ie_md = f'**{ie.IE_NAME}**'
24 if ie.IE_DESC is False:
25 continue
26 if ie.IE_DESC is not None:
27 ie_md += f': {ie.IE_DESC}'
28 search_key = getattr(ie, 'SEARCH_KEY', None)
29 if search_key is not None:
30 ie_md += f'; "{ie.SEARCH_KEY}:" prefix'
31 if not ie.working():
32 ie_md += ' (Currently broken)'
33 yield ie_md
34
35 ies = sorted(yt_dlp.gen_extractors(), key=lambda i: i.IE_NAME.lower())
36 out = '# Supported sites\n' + ''.join(
37 ' - ' + md + '\n'
38 for md in gen_ies_md(ies))
39
40 with open(outfile, 'w', encoding='utf-8') as outf:
41 outf.write(out)
42
43
44 if __name__ == '__main__':
45 main()