Python 如何从Pexels API下载视频?
我有这段代码可以从像素中提取图像,但我不知道如何将其更改为视频。我以前从未见过有人这样做,我非常感谢任何人的帮助。我试着把所有的照片标签都换成视频,但这似乎不起作用。我还尝试添加更多的库,但这似乎也不起作用Python 如何从Pexels API下载视频?,python,api,web,Python,Api,Web,我有这段代码可以从像素中提取图像,但我不知道如何将其更改为视频。我以前从未见过有人这样做,我非常感谢任何人的帮助。我试着把所有的照片标签都换成视频,但这似乎不起作用。我还尝试添加更多的库,但这似乎也不起作用 import argparse import json import os import time import requests import tqdm from pexels_api import API PEXELS_API_KEY = os.environ['PEXELS_KEY
import argparse
import json
import os
import time
import requests
import tqdm
from pexels_api import API
PEXELS_API_KEY = os.environ['PEXELS_KEY']
MAX_IMAGES_PER_QUERY = 100
RESULTS_PER_PAGE = 10
PAGE_LIMIT = MAX_IMAGES_PER_QUERY / RESULTS_PER_PAGE
def get_sleep(t):
def sleep():
time.sleep(t)
return sleep
def main(args):
sleep = get_sleep(args.sleep)
api = API(PEXELS_API_KEY)
query = args.query
page = 1
counter = 0
photos_dict = {}
# Step 1: Getting urls and meta information
while page <= PAGE_LIMIT:
api.search(query, page=page, results_per_page=RESULTS_PER_PAGE)
photos = api.get_entries()
for photo in tqdm.tqdm(photos):
photos_dict[photo.id] = vars(photo)['_Photo__photo']
counter += 1
if not api.has_next_page:
break
page += 1
sleep()
print(f"Finishing at page: {page}")
print(f"Images were processed: {counter}")
# Step 2: Downloading
if photos_dict:
os.makedirs(args.path, exist_ok=True)
# Saving dict
with open(os.path.join(args.path, f'{query}.json'), 'w') as fout:
json.dump(photos_dict, fout)
for val in tqdm.tqdm(photos_dict.values()):
url = val['src'][args.resolution]
fname = os.path.basename(val['src']['original'])
image_path = os.path.join(args.path, fname)
if not os.path.isfile(image_path): # ignore if already downloaded
response = requests.get(url, stream=True)
with open(image_path, 'wb') as outfile:
outfile.write(response.content)
else:
print(f"File exists: {image_path}")
if __name__ == '__main__':
parser = argparse.ArgumentParser()
parser.add_argument('--query', type=str, required=True)
parser.add_argument('--path', type=str, default='./results_pexels')
parser.add_argument('--resolution', choices=['original', 'large2x', 'large',
'medium', 'small', 'portrait',
'landscape', 'tiny'], default='original')
parser.add_argument('--sleep', type=float, default=0.1)
args = parser.parse_args()
main(args)
import argparse
导入json
导入操作系统
导入时间
导入请求
导入TQM
从pexels_api导入api
PEXELS\u API\u KEY=os.environ['PEXELS\u KEY']
每个查询的最大图像数=100
每页的结果=10
页面限制=每个查询的最大图像数/每个页面的结果数
def获取睡眠(t):
def sleep():
时间。睡眠(t)
返回睡眠
def主(args):
sleep=获取睡眠(args.sleep)
api=api(PEXELS\u api\u键)
query=args.query
页码=1
计数器=0
照片_dict={}
#步骤1:获取URL和元信息
抱歉,我碰到了这个问题。在使用python API pexelsPy从Pexels下载视频时,我遇到了类似的情况。这可能会有帮助:
我检索了视频的ID,然后创建了具有以下结构的下载URL:”https://www.pexels.com/video/“+ID+”/下载“
请参见以下示例:
def download_video(type_of_videos):
video_tag = random.choice(type_of_videos)
PEXELS_API = '-' #please add your API Key here
api = API(PEXELS_API)
retrieved_videos = read_already_download_files('downloaded_files.txt')
video_found_flag = True
num_page = 1
while video_found_flag:
api.search_videos(video_tag, page=num_page, results_per_page=10)
videos = api.get_videos()
for data in videos:
if data.width > data.height: #look for horizontal orientation videos
if data.url not in retrieved_videos:
# write_file('downloaded_files.txt', data.url)
url_video = 'https://www.pexels.com/video/' + str(data.id) + '/download' #create the url with the video id
r = requests.get(url_video)
with open(data.url.split('/')[-2]+'.mp4', 'wb') as outfile:
outfile.write(r.content)
return data.url.split('/')[-2]+'.mp4' #download the video
num_page += 1
download\u video
函数接受一组带有多个标记的字符串,例如:[“happy”、“sad”、“relax]。然后随机选择其中一个标签
PEXELS_API应该包含您的API密钥
读取已下载的文件('download\u files.txt')
:检索已下载的文件,检查当前找到的文件是否已下载。找到解决方案了吗?您好,欢迎使用堆栈溢出!关于你的帖子如何回答这个问题,你能说得更具体一点吗?嗨,谢谢你的欢迎。当然可以。问:如何从Pexels API下载视频?答:我检索了视频的ID,然后创建了具有以下结构的下载URL:“ID+”/download“。然后我只需请求创建的URL并保存文件,即下载的视频。问候。@inou如果您能够描述函数的工作方式及其依赖关系,将对其他用户有所帮助。@jimiclapton,当然,完成了。