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