2017-01-12 1 views
1

Я попытался загрузить видеофайл с помощью python, проблема в том, что система не может найти файл, даже если я пишу путь к файлу. мой код выглядит так:загружать видео файл по пути на python не работает

import os 
import requests 

#step 1 
host = 'https://blablabla.com' 

test = { 
    "upload_phase" : "start", 
    "file_size" : 1063565 
} 

params = { 
    "access_token":my_access_token, 
    "fields":"video_id, start_offset, end_offset, upload_session_id", 
} 

vids = requests.post(host, params=params, data=test) 
vids = vids.json() 

try: 
    video_id= vids["video_id"], 
    start_offset= vids["start_offset"], 
    end_offset= vids["end_offset"], 
    upload_session_id= vids["upload_session_id"] 
except: 
    pass 

print(vids) 

############################################################################### 
#step 2 
############################################################################### 
test = { 
    "upload_phase" : "transfer", 
    "start_offset" : start_offset, 
    "upload_session_id": upload_session_id, 
    "video_file_chunk": os.path.realpath('/home/def/Videos/test.mp4') 
} 

params = { 
    "access_token":my_access_token, 
    "fields":"start_offset, end_offset", 
} 

vids = requests.post(host, params=params, data=test) 
vids = vids.json() 

try: 
    start_offset= vids["start_offset"], 
    end_offset= vids["end_offset"] 
except: 
    pass 

print(vids) 

Многие пути я пытался, like os.path.abspath, os.path, os.path.dirname, os.path.basename, os.path.isfile, os.path.isabs, os.path.isdir это все еще не работает. даже я даю import os.path or import os.

ответ

0

В коде вы просто отправляете путь к файлу как строку на сервер, но не файл. Вы должны попробовать что-то вроде:

my_file = {'file_to_upload': open(os.path.realpath('/home/def/Videos/test.mp4'),'rb')} 
# You should replace 'file_to_upload' with the name server actually expect to receive 
# If you don't know what server expect to get, check browser's devconsole while uploading file manually 
vids = requests.post(host, params=params, files=my_file) 

отметить также, что вам, возможно, придется использовать requests.Session(), чтобы иметь возможность обрабатывать печенье, маркер доступа ...

+0

Это работает, спасибо вам, г-н @Andersson –

Смежные вопросы