我試圖使用html輸入類型file
和python模塊youtube-upload將用戶上傳的視頻提交給YouTube。當表單提交它像這樣處理的:在臨時內存中訪問用戶上傳視頻的問題
if request.method == 'POST':
video = request.FILES['file']
v=str(video)
command = 'youtube-upload [email protected] --password=password --title=title --description=description --category=Sports ' + v
r = subprocess.Popen(command, stdout=subprocess.PIPE)
v = r.stdout.read()
所以我認爲問題是,我需要爲視頻更完整路徑。如果是這種情況,在臨時存儲器中訪問視頻的路徑是什麼。
該命令的一般是: youtube-upload --email=email --password=password --title=title --description=description --category=category video.avi
另外,我已經看過了YouTube API取得具體here但如果有人可以提供如何使用API來做到這一點在Python更完整的解釋,即會很棒。不幸的是,網站上的指南只關注xml。
編輯FOLLOWING sacabuche的評論:
所以我的看法是,現在大致是:
def upload_video(request):
if request.method == 'POST':
video = request.FILE['file']
v = video.temporary_file_path
command = 'youtube-upload [email protected] --password=password --title=title --description=description --category=Sports ' + v
r=subprocess.Popen(command, stdout=subprocess.PIPE)
vid = r.stdout.read()
else:
form = VideoForm()
request.upload_handlers.pop(0)
return render_to_response('create_check.html', RequestContext(request, locals()))
但v=video.temporary_file_path
得出錯誤'InMemoryUploadedFile' object has no attribute 'temporary_file_path'
。因此,視頻仍處於臨時內存中,我不知道temporary_file_path
應該被調用或如何獲取所述對象。
你改變了你的FILE_UPLOAD_HANDLERS文件路徑? – sacabuche