project im working on a bit
- create pip package so you can just
python -m yt_archiver 'channel id' 'download_path'
- add html, js and css code so the user can use the application better
-
make setup.py:
- downloads needed packages, gets needed data from user.
-
add a fast way to convert videos to different file types:
- using
ffmpeg
basically all video file types are supported.
- using
-
allow the user to change settings:
- running
setup.py
again will let you change settings.
- running
-
add video optimazation:
- allowing the user to do api video optimization with
Freeconvert.com
video optimization (needs api key, not good for big channels). - also letting the user do local optimization using
ffmpeg
.
- allowing the user to do api video optimization with
-
show user information:
- using
psutil
andplatform
to get storage, os, other drives.
- using
-
improve video download speed:
- using the concurrent fragments
ydl_opts
and setting it to5
.
- using the concurrent fragments
-
optimize youtube api calls:
- saving called data locally then calling it when the user calls the same channel id.
-
clean code up:
- seperated the functions in
archiver.py
into group files.
- seperated the functions in
-
prevent youtube bot detection:
- when detected the code will retry then if it fails again it will change the user agent (doesnt work for cli version).
-
cli:
- added
cli.py
so if the user has the needed api data they can download a channel without needing a api key. - the user can also compress and convert videos within the cli using the
-c
and-cv
argurments. - compressing and converting using
moviepy
instead offfmpeg
.
- added
-
bypass
config.py
:- while adding the needed data that is called from the youtube api inside a folder called
yt_data
a user can basically remove the needing forconfig.py
(this comes with the exception of not using local ffmpeg)
- while adding the needed data that is called from the youtube api inside a folder called
-
adding more options to cli:
-c --compress
allows the user to use l (~30%), m (~50%) or h (~65%) to compress to X of the original bitrate (usingmoviepy
)-cv --convert
lets the user convert to differet video file formats (usingmoviepy
)