fix: get the whole upload URL instead of just the ID

This commit is contained in:
VC
2023-10-03 16:09:47 +02:00
parent 1ed86085bc
commit 8664b169f0
2 changed files with 5 additions and 5 deletions

View File

@@ -64,10 +64,10 @@ pub fn run(config: Config) {
let local_path = dl_video(&dl_url) let local_path = dl_video(&dl_url)
.unwrap_or_else(|e| panic!("Cannot download video at URL {}: {}", dl_url, e)); .unwrap_or_else(|e| panic!("Cannot download video at URL {}: {}", dl_url, e));
let resumable_upload_id = create_resumable_upload(&config.youtube, &latest_vid) let resumable_upload_url = create_resumable_upload(&config.youtube, &latest_vid)
.unwrap_or_else(|e| panic!("Cannot retrieve the uploads resumable id: {e}")); .unwrap_or_else(|e| panic!("Cannot retrieve the uploads resumable id: {e}"));
upload_video(&local_path, &resumable_upload_id, &config.youtube) upload_video(&local_path, &resumable_upload_url, &config.youtube)
.unwrap_or_else(|e| panic!("Cannot resume upload!: {e}")); .unwrap_or_else(|e| panic!("Cannot resume upload!: {e}"));
remove_file(&local_path).unwrap_or_else(|e| panic!("Cannot delete file {}: {}", local_path, e)); remove_file(&local_path).unwrap_or_else(|e| panic!("Cannot delete file {}: {}", local_path, e));

View File

@@ -136,7 +136,7 @@ pub fn create_resumable_upload(
if res.status().is_success() { if res.status().is_success() {
Ok(res Ok(res
.headers() .headers()
.get("x-guploader-uploadid") .get("location")
.ok_or("Cannot find suitable header")? .ok_or("Cannot find suitable header")?
.to_str()? .to_str()?
.to_string()) .to_string())
@@ -147,14 +147,14 @@ pub fn create_resumable_upload(
pub fn upload_video( pub fn upload_video(
f_path: &str, f_path: &str,
r_id: &str, r_url: &str,
config: &YoutubeConfig, config: &YoutubeConfig,
) -> Result<(), Box<dyn Error>> { ) -> Result<(), Box<dyn Error>> {
let access_token = refresh_token(config)?; let access_token = refresh_token(config)?;
let client = reqwest::blocking::Client::new(); let client = reqwest::blocking::Client::new();
let res = client.put(format!("https://www.googleapis.com/upload/youtube/v3/videos?uploadType=resumable&part=snippet%2Cstatus&upload_id={}", r_id)) let res = client.put(r_url)
.header("Authorization", format!("Bearer {}", access_token)) .header("Authorization", format!("Bearer {}", access_token))
.body(f_path.to_string()) .body(f_path.to_string())
.send()?; .send()?;