71 lines
2.4 KiB
Python
71 lines
2.4 KiB
Python
#!/usr/bin/env python
|
|
from sys import exit as sysexit
|
|
from os.path import isfile
|
|
from lib_pornhub import (
|
|
ascii_banner, ph_config_dl_dir, ph_get_playlist, ph_get_video
|
|
)
|
|
from argparse import ArgumentParser
|
|
import ssl
|
|
|
|
|
|
try:
|
|
_create_unverified_https_context = ssl._create_unverified_context
|
|
except AttributeError:
|
|
# Legacy Python that doesn't verify HTTPS certificates by default
|
|
pass
|
|
else:
|
|
# Handle target environment that doesn't support HTTPS verification
|
|
ssl._create_default_https_context = _create_unverified_https_context
|
|
|
|
|
|
def main():
|
|
parser = ArgumentParser()
|
|
parser.add_argument('--url', type=str, help='URL of Pornhub video')
|
|
parser.add_argument('--playlist', nargs='?', const='best', choices=['most-viewed', 'best', 'top-rated', 'longest'], help='Optional ordering of videos')
|
|
parser.add_argument('--limit', type=int, help='Maximum number of videos', default=0)
|
|
parser.add_argument('--dir', type=str, help='Output directory')
|
|
parser.add_argument('--file', type=str, help='File with links to download')
|
|
args = parser.parse_args()
|
|
|
|
################################
|
|
ascii_banner("PornHub-dl")
|
|
print("\t\tMade by tnt2402\n")
|
|
print("\t\tModified by JDM17")
|
|
print("\n\n\n########################################################\n")
|
|
################################
|
|
|
|
ph_config_dl_dir(args.dir)
|
|
if (args.url == None and args.playlist != None):
|
|
print("URL cannot be empty!")
|
|
sysexit()
|
|
elif (args.playlist != None):
|
|
ph_get_playlist(args.url, args.playlist, args.limit)
|
|
elif (args.url != None):
|
|
ph_get_video(args.url)
|
|
elif (args.file != None):
|
|
if not isfile(args.file):
|
|
print("File not found")
|
|
sysexit()
|
|
with open(args.file, encoding="utf-8") as f:
|
|
temp = list(filter(None, f.read().split("\n")))
|
|
list_from_file = temp.copy()
|
|
new_file = temp.copy()
|
|
video_len = len(list_from_file)
|
|
count = 0
|
|
try:
|
|
for url in list_from_file:
|
|
print('[+] URL: ' + url)
|
|
ph_get_video(url)
|
|
new_file.remove(url)
|
|
count += 1
|
|
print("\nProcessed: {}/{}\n".format(count, video_len))
|
|
except KeyboardInterrupt:
|
|
pass
|
|
with open(args.file, encoding="utf-8", mode="w") as f:
|
|
for url in new_file:
|
|
f.write(url + "\n")
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|