]> jfr.im git - yt-dlp.git/blob - devscripts/make_supportedsites.py
[cleanup] Minor fixes (See desc)
[yt-dlp.git] / devscripts / make_supportedsites.py
1 #!/usr/bin/env python3
2 import optparse
3 import os
4 import sys
5
6 sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
7
8 import yt_dlp
9
10
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
17 outfile, = args
18
19 def gen_ies_md(ies):
20 for ie in ies:
21 ie_md = f'**{ie.IE_NAME}**'
22 if ie.IE_DESC is False:
23 continue
24 if ie.IE_DESC is not None:
25 ie_md += f': {ie.IE_DESC}'
26 search_key = getattr(ie, 'SEARCH_KEY', None)
27 if search_key is not None:
28 ie_md += f'; "{ie.SEARCH_KEY}:" prefix'
29 if not ie.working():
30 ie_md += ' (Currently broken)'
31 yield ie_md
32
33 ies = sorted(yt_dlp.gen_extractors(), key=lambda i: i.IE_NAME.lower())
34 out = '# Supported sites\n' + ''.join(
35 ' - ' + md + '\n'
36 for md in gen_ies_md(ies))
37
38 with open(outfile, 'w', encoding='utf-8') as outf:
39 outf.write(out)
40
41
42 if __name__ == '__main__':
43 main()