51 lines
1.5 KiB
Python
51 lines
1.5 KiB
Python
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()
|