def search(term, page): videos = VideosSearch(term, limit=20, language='en', region='US') for i in range(0, int(page)): videos.next() SER = term results_dict = videos.result(mode=ResultMode.dict) results = results_dict['result'] term = results for t in term: remove = ['/', '\\', '(', ')', '?'] for value in remove: t['title'] = t['title'].replace(value, '') my_dict = { "title": "", "thumbnails": ["", ""], "channel": "", "viewCount": "", "publishedTime": "", "id": "", "search": SER } term.append(my_dict) #return jsonify(term) return render_template('search.html', term=term, page=page)
def search_videos(limit=30): video_search = VideosSearch('videos for cats to watch', limit=limit, language='en', region='US') video_set = [] while limit > len(video_set): if len(video_set) != 0: video_search.next() for vid in video_search.result()['result']: video_set.append(vid['link']) print(f"{vid['title']} - {vid['link']}") return video_set
def get_available_videos(topic, limit=20): VS = VideosSearch(topic, limit=limit) data = [] temp = VS.result() [ data.append(temp["result"][i]["title"]) for i in range(len(temp["result"])) ] while True: try: VS.next() temp = VS.result() [ data.append(temp["result"][i]["title"]) for i in range(len(temp["result"])) ] except: break VS = None return {"result": data}
def youtube_query(query, json_file, language='en', page=30, max_minu=30): json_worker = JsonWorker(json_file) page_finish = False video_list = [] videosSearch = VideosSearch(query, language=language) print("---------------- {} ----------------".format(query)) for page_i in tqdm(range(page)): error_flag = False video_meta = search_results_select( videosSearch.result(), max_duration=[0, max_minu, 0]) if len(video_meta) > 1: video_list.extend(video_meta) try: videosSearch.next() except: error_flag = True if error_flag: break time.sleep(2) if page_i == page-1: page_finish = True if len(video_list) >= 1: count = 0 for vi in video_list: if json_worker.check_in(vi["vid"]): continue count += 1 vi["query"] = query_all[language][query] json_worker.add_one(vi, vi["vid"]) if count >= 1: print("{}: {}".format(query, count)) json_worker.save() else: print("{}: {}".format(query, 0)) else: print("{}: {}".format(query, 0)) return page_finish
def getYoutubeVideos(query): search = VideosSearch(query) print("search", search) response = search.result()["result"] count = 0 print("len response", len(response)) while len(response) < 100 and count < 10: search.next() response += search.result()["result"] count += 1 response = response[:2] print("link", response[0]["link"]) for video in response: # if isFemale(video["link"]): addToDb(video, query) # else: # continue return None
from youtubesearchpython import VideosSearch search = VideosSearch("python") response = search.result()["result"] while len(response) < 10: search.next() response += search.result()["result"] print(len(response)) # id,views,title,search,video_thumbnail,duration,channel,channel_thumbnail print((response[0]["link"])) print((response[0]["viewCount"]["text"])) print((response[0]["title"])) print(str("Cloud SQL")) print((response[0]["thumbnails"][0]["url"])) print((response[0]["duration"])) print((response[0]["channel"]["name"])) print((response[0]["channel"]["thumbnails"][0]["url"]))