I followed this link with the second answer (two steps) to implement the video upload to Youtube: Upload video on Youtube using curl and api v3
The code works fine, but when I executed, I got response saying:
status:
embeddable: true
license: "youtube"
privacyStatus: "unlisted"
publicStatsViewable: true
uploadStatus: "uploaded"
That means it is working, but when I went to my youtube account to check the video on videos list, it said:
Processing abandoned
The video could not be processed
The video is not playable with a red triangle, so are there any more info about why? and how to fix it? the video is about 30 seconds long, and when I manually upload from my youtube account UI, it works.
also my scope is configured with:
scopes: ['https://www.googleapis.com/auth/youtubepartner-channel-audit',
'https://www.googleapis.com/auth/youtube.upload']
Export your video again and save it in a different format supported by Youtube. at first, youtube kept abandoning the processing of my mp4 video but when I saved it as MOV, I was able to upload it with ease. Hope it helps because uploading with video classic didn't fix my issue.
This video will explain to you all the possible reasons for your video rejection by youtube.
watch till the end so you can understand what is wrong with your video.
https://youtu.be/-iVtTHhfYtA
This is a new video with new reasons behind youtube rejection
I had the same problem with Electron. Solved by moving the API call from rendering process to main process. Apparently the video didn't upload at all using the node.js API in browser context.
Related
I'm trying to show on my webpage a video from twilio that was recorded.
The REST call that I made from twilio (get composition) returns a binary file and I want to use it to show the video.
I can't use the url from twilio directly to the video src because it needs authentication and I do it on the back-end.
I can do it using the binary and encoding it to base64, the problem is that for large videos the webpage has a lazy load due to the download of the large file.
Also, I don't have the binary locally in my server, and therefore I'm getting the binary each time I need to see the video.
Can anyone help me to know how is the best way to show the video and to make it possible to be load by chunks with buffering? Because I can create a webpage that only downloads the binary and use it directly on the src of the video too, but with that I can't return x seconds back on the video or foward, I can only see it from the beggining to the end without missing anything.
Many thanks for the help :)
Twilio developer evangelist here.
I'd recommend that you download the video and store it yourself under a URL that you can set in a <video> element. That will save you downloading the video from Twilio each time and give you the control over the playback.
I'm using YouTube Data API (v3) to access my own video info.
Everything worked fine, I could get fileDetails.fileSize, fileDetails.videoStreams[] etc. as I expected.
However, in a couple of days after I uploaded the video, the same API returns only fileDetails.fileName and no other info anymore.
Now returned json looks like this:
"fileDetails": {
"fileName": "test movie.mp4"
}
Here is my request URL:
https://www.googleapis.com/youtube/v3/videos?part=fileDetails&id=__my_video_id__
The video is owned by my account with which I did OAuth and got an access token.
I tried the URL on OAuth 2.0 Playground (https://developers.google.com/oauthplayground/), but I got the same result though once it returned all data when I tried it on the day I uploaded the video.
I wonder it might be related to the video visibility since I set it to unlisted so that others won't find my test video by searching.
Any info is welcome!
Edited:
The video itself doesn't have any problem. I can play it on YouTube and via YouTube iframe API also.
I'm aware that YouTube has a system which automatically detects copyright infringements, however, this issue seems to happen randomly even when we don't violate any copyright of others. (happens with our original videos too)
We finally decided to cache fileDetail on our backend.
I have already posted two questions
Question 1 Question 2
last week, but no answer worked. I am working on an app(I have completed the UI),
I have to show the youtube videos in the app, just like the youtube app. that is to show youtube videos in the full mode and in half screen too.
Some Body told me to use MPMoviePlayerViewController , but the problem with this player is, that it takes the url of videos like "www.xyz.com/videos.mov". It doesn't play youtube videos. I went to Youtube Developer site. There is lot of information, but all that is for some scripting(javascript using iframe) language, that I don't understand.
Its been a week, and am stuck with this youtube API(I tried to read each and every thing on youtube developer blog, but most of the stuff is related to javascript, which I don't know).
There are few codes available over stackoverflow and Github, which are very old, and are not working now.
If any body know anything then please help. Thanks in advance
I've managed to play YouTube videos with MPMoviePlayerController using LBYouTubeView Library.
Which is a good and upto date library. Basically it extract "www.xyz.com/videos.mov" kind of URL from YouTube and plays in a MPMoviePlayerController. You can also set the quality of the video (low,medium,high) etc. This library comes with a sample project you can test.
I know about how to play video in device. But Here I just want to know that is it possible to get streaming URL from any YouTube Video? Then how can I do it, I tried to search on google but I can not able to find my solution.
Generally I does not want to play direct stream from video, actually I want to save this URL (stream) in my buffer memory OR whatever temporary file and whenever user click on particular button then particular URL Stream is play.
Al Last I got YouTube APIs + iPhone = Cool mobile apps. But I am not sure that it's helpful in my case or not ? If anybody who worked on this API then please suggest me, Otherwise How can I get streaming URL.
Your suggestion will be appreciated.
Thanks in advance.
http://www.youtube.com/get_video_info?&video_id={VIDEO_ID}
This will not work on all files, some will display the message "This+video+contains+content+from.....". But many will work.
Is it possible to get streaming URL from any YouTube Video? - No, it is not possible without hurting the terms of service of youtube. Google has built the business model of youtube around the advertisements all over youtube, in-video banners and video ads and they want your user to see their ads. This is the reason they completely hide the video stream and would ban your app if you anyway access and stream it directly.
The only consented way to play youtube videos on iOS is to embed it into an iframe of a web view.
I'd like to upload an audio file to my website, programmatically create an video slideshow using an image already on the server, and then upload that video to YouTube using its API. The website is built on Grails, so a Java solution would be great; Linux command line could also work.
Uploading videos using the YouTube API is working well. I also have no trouble getting avconv or ffmpeg to create videos that will play in, for example, Windows Media Player. This works to make a playable movie:
avconv -i image.jpg -i audio.mp3 video.mpg
However, manually uploading that video to YouTube results in a format error. I can create other files that YouTube will process successfully, but the audio plays back with regular stutters. (A second or so of clear audio, then a brief gap, then some clear audio, ...) For example:
avconv -i image.jpg -i audio.mp3 video.mkv
I have experimented with a variety of output formats and codecs, but all fall into one of those categories: apparent encoding success but YouTube processing failure, or processing success but unacceptable audio playback.
I wonder if anyone can point me in the right direction. I'm open to any solution that will let me solve the basic problem of uploading audio to YouTube via my Grails website without forcing my users to create the video slideshow themselves.
Thanks in advance for any clues.
It is quite easy to create a YouTube slideshow video on iPad. This guide shows the steps.
Adding music, applying transitions, editing photos can all be done there.
I built a pretty similar web service, based on ffmpeg: it's called tovid.io — uploads user-provided mp3 to YouTube as a video, using uploaded image file for a visual track. User uploads mp3 file, an image, then we render a video in the backend, and publish it on YouTube under the user's account.
It is very easy to render an h264 mp4 video following YouTube specs using Linux command line ffmpeg. Let me know if you're interested in our particular command line.