from lib import * import os import argparse def parse_args(): parser = argparse.ArgumentParser( description='Download clips from a course', ) parser.add_argument('course_id', type=str, help='Course ID') parser.add_argument('--out-dir', type=str, help='Output directory', default='./out') parser.add_argument('--starter-url', type=str, help='Starter URL', default="https://www.fau.tv/auth/sso") parser.add_argument('--start-at', type=int, help='Skip all previous indices (defaults to 1)', default=1) parser.add_argument('--auth-token', type=str) parser.add_argument('--session-id', type=str) parser.add_argument('--session-ci', type=str) parser.add_argument('--no-auth', action='store_true') return parser.parse_args() def main(): args = parse_args() try: if not args.no_auth and args.auth_token and args.session_id and args.session_ci: set_token(args.auth_token, args.session_id, args.session_ci) elif not args.no_auth: load_token(args.starter_url) os.makedirs(args.out_dir, exist_ok=True) for index, clip_id in enumerate(get_course_clip_ids(args.course_id)): if index < args.start_at - 1: continue download_clip( clip_id, f'{args.out_dir}/{index+1: 04d}_{clip_id}.mp4') except KeyboardInterrupt: pass if __name__ == '__main__': main()