Provide some useful util functions (and a poweful tool tidyup
) for tidying up your personal video folder.
Data source from LIBRARY or BUS.
- Extract designatio
- Search folder (recursively)
- Pull & save video info (title, actors etc.)
- Download cover image
- Rename video file
Python >= 3.4
BeautifulSoup4 >= 4.7.0
requests >= 2.21.0
pip install avutil
$ tidyup -h
usage: tidyup [-h] [-r] [-i IN] [-o OUT] [-p PROXY] [-s SOURCE] [-t THREAD] [-e ENCODER] [--with-poster]
Tidy up your personal video dir
optional arguments:
-h, --help show this help message and exit
-r search dir recursively
-i IN, --in IN video input dir
-o OUT, --out OUT video output dir
-p PROXY, --proxy PROXY
http proxy address
-s SOURCE, --source SOURCE
data source of video info, 'library' or 'bus'
-t THREAD, --thread THREAD
threads num, use multi-threads to download info & images
-e ENCODER, --encoder ENCODER
encoder of meta-data, 'nfo'(default) or 'vsmeta'
--with-poster save poster
Tidy up current dir
$ tidyup
Import avutil:
import avutil
Search folder recursively to find videos:
folder = "StudyResource"
videos = avutil.Search_folder(folder)
# videos: map { designatio -> [ slice_paths ] }
Or you can specify the extension type of video
videos = avutil.Search_folder(folder, media_suffix={".mp4", ".wmv", ".avi", ".mkv"})
Pull video info from LIBRARY by default & download cover image
for designatio, file_paths in videos.items():
video = avutil.Video(designatio, file_paths)
# Pull video info
video.pull_info()
# Download cover image (as video.title + .jpg)
video.download_cover()
It's okey using BUS
# Pull video info
video.pull_info(source=avutil.Bus)
Save video info as .nfo file
# Save video info
video.save_info()
Tidy up!
# Tidy up (rename to video.designatio + video.actors)
video.rename()
Proxy is supported in avutil in two ways, you can either pass http-proxy in code
video.pull_info(http_proxy="https://127.0.0.1:1087")
video.download_cover(http_proxy="https://127.0.0.1:1087")
Or define a global bash variable (eg. http proxy):
$ export HTTP_PROXY="https://127.0.0.1:1087"