selfstudy

Study Project 02. 29. Oct

호무리 2021. 10. 30. 06:57

 

 

프로젝트는 이제 갓 시작됐는데 벌써 지쳐서 어제 내가 뭐했는지를 모르겠음

FMA에서도 랜덤하게 받아오랬는데 유튜브 다운로더 고치다가 진이 다 빠져서 걍 FMA는 인기 차트에서 받아오기로 결심함

오늘은 youtube_dl 옵션 중 타이틀 필터랑 파일 크기 제한 주는 것 때문에 하루를 날림... 사실 어제도 파일 크기 제한때매 오후를 통으로 날리긴 했는데

아무리 구글링해도 안나오길래 YoutubeDL.py 파일 열어서 직접 확인했다 씨발.... 이게 제일 빨랐다는 것을 어제는 몰랐지

구글링하면 죄다 커맨드라인에서 쓰는것만 나옴

 

 

누구든 필요할 거 다 아니까 미리 자연에 방사한다

 

 

 

from youtube_dl import YoutubeDL

 

ydl = YoutubeDL({
    'format':'bestaudio',
    'restrictfilenames':True, #Do not allow & and spaces in filenames
    'forcefilenames':True, #force printing final filename
    'outtmpl':str('%(title)s.mp3'),
    'max_filesize':30000000, #byte단위인것같음
    'ignoreerrors':True, #Do not stop on download errors
    'cachedir':False,
#   'nooverwrites':True, #Prevent overwriting files
    'rejecttitle':str('Best|HOUR|Mix|Top|STREAM|OPM|Live|Study'), #Reject downloads for matching titles
#    'download_archive':True, #Videos already present in the file are not downloaded again
    'postprocessors':[{
        'key':'FFmpegExtractAudio',
        'preferredcodec':'mp3',  #나중에 wav로 따로 변환해야함
        'preferredquality':'192',
    }]

 

...(뒤에는 알아서 하세요)

 

 

 

nooverwrites랑 download_archive 옵션까지 주면 아예 작동을 멈춰버리길래 주석처리했음 ㅠ

사실 영상 길이 체크해서 너무 길면 자르고 싶었는데 능력이 안됨 ㅋㅋ info = ydl.extract.info() 하고 info.get['duration']으로 받아올 수 있다는데 왜 내가하면 안되냐고

 

대신 긴 영상 제목에 들어갈만한 키워드 죄다 필터링하고 파일 크기 제한했음... 이렇게 하면 나중에 제목에서 안걸러진 큰 파일들은 받다 만 쓰레기 파일 따로 삭제해줘야하는데 그건 또 어느세월에 하지

 

삭제하는 코드는 따로 또 해두긴 했으

 

from pathlib import Path

 

for filename in Path(".").glob("*.part"):
    filename.unlink

 

.part 확장자 가진 파일은 삭제하는건데...

 

근데 나중에 사혼의 구슬조각 어케 모으지????????

 

오늘 원래 이거 하려는게 아니었는데 ㅠ