예제 #1
0
파일: ytmeta.py 프로젝트: dipanm/ytdragon
def load_video_meta(vid, express=False):
    # logr = logging.getLogger(vid)

    vid_meta = dict()
    wpage = get_page("video", vid)  # wpage = watch_page
    if (wpage["code"] != 200) or (wpage["len"] == 0):  # only HTML code for success is 200 OK
        raise ytd_exception_meta("PAGE_FETCH_ERR", wpage, vid_meta, "HTTP Error Code-{}".format(wpage["code"]))

    if express:
        vid_meta = parse_watch_page_express(wpage)
        return vid_meta

    else:
        vid_meta = parse_watch_page(wpage)
        if vid_meta["player_args"] == None:
            raise ytd_exception_meta("BAD_PAGE", wpage, vid_meta, "")

        vid_meta["stream_map"] = parse_stream_map(vid_meta)
        if not (vid_meta["stream_map"]):
            raise ytd_exception_meta("NO_STREAMS", wpage, vid_meta, "")

        return vid_meta
예제 #2
0
파일: extract.py 프로젝트: dipanm/ytdragon
	for opt, arg in opts:
		if opt in ("-p", "--playlist"):
			plref = arg
		if opt in ("-o", "--outfile"): 
			outfile = arg

	if ( plref  == "" ): 
		logm.critical("Missing playlist. Either supply item (id/url)  OR file with url_list") 
		logm.critical(usage_str,sys.argv[0])
		sys.exit(2)

	return plref, outfile

#---------------------------------------------------------------
# Main function

logm = setup_main_logger() 

plref, outfile = parse_arguments(sys.argv[1:]) 

plid = get_plid_from_url(plref) 

pl_page = get_page("list",plid) 

plist = extract_playlist(plid,pl_page) 

save_playlist(plist,outfile) 
print_playlist_stats(plist)