14. Python/Selenium

파이썬을 이용하여 인프런 동영상 다운로드 공부

THE HEYDAZE 2021. 6. 28. 11:32

 

인프런

 

인프런은 player.js 라이브러리를 사용하고 있으며,

약 6초 단위로 분할되어 서버에서 응답받습니다

6분 영상만 해도 50개 파일을 다운받아야 1개의 영상이 됩니다

 

다운 받으려면 응답 url 로 연결하면 됩니다

단, 10번째 강의를 다운받으려면 10번째 강의 url 로 접근해야만,

해당 다운로드 url 로 접근할 수 있는 권한을 얻게 됩니다.

(cookie, url, header, session 어디서 권한 승인 조건을 판단하는지는 찾아야하기 때문에 안찾았습니다)

 

 

크롬 셀레니움을 이용하여 인프런에 로그인하고, 해당 영상들을 자동으로 다운받았습니다

구글 로그인 같은 경우 우회방법이 있으니 검색해서 찾아서 하면 됩니다

 

분할된 영상 합치기 위해 ffmpeg 사용하였습니다
import os

path = 'D:/video/ttt/'

def sorted_ls(path):
    mtime = lambda f: os.stat(os.path.join(path, f)).st_mtime
    return list(sorted(os.listdir(path), key=mtime))


with open('data.txt', encoding='utf-8', mode='w') as f:
    # for item in sliceArr:
    for item in sorted_ls(path):
        print(item)
        f.write('file ' + item + '\n')


# https://babel-tower.tistory.com/98
# ffmpeg.exe -f concat -i data.txt -c copy output.mp4

txt 파일로 합칠 목록들을 작성하고 ffmpeg 명령 사용해서 합쳤습니다

 

합쳐짐