如何通过http发送srt文件

时间:2015-07-14 20:34:08

标签: python-2.7 facebook-graph-api srt

我可以通过他们的图谱API将视频上传到Facebook,但无法为这些视频上传字幕(cc)。根据他们 documentation 上传视频字幕时,只能提供视频ID,区域设置和srt文件名。但是,在发布请求时

 function AlertPrevWord() {
        //var text = document.activeElement; //Fetch the active element on the page, cause that's where the cursor is. 
        var text = getActiveElement();
        console.log(text);
        var caretPos = text.selectionStart;//get the position of the cursor in the element.
        var word = ReturnWord(text.value, caretPos);//Get the word before the cursor. 
        if (word != null) {//If it's not blank
            return word //send it back.
        }
    }

    function ReturnWord(text, caretPos) {
        var index = text.indexOf(caretPos);//get the index of the cursor
        var preText = text.substring(0, caretPos);//get all the text between the start of the element and the cursor. 
        if (preText.indexOf(" ") > 0) {//if there's more then one space character
            var words = preText.split(" ");//split the words by space
            return words[words.length - 1]; //return last word
        }
        else {//Otherwise, if there's no space character
            return preText;//return the word
        }
    }




function getActiveElement(document){
    document = document || window.document;
    if( document.body === document.activeElement || document.activeElement.tagName == 'IFRAME' ){// Check if the active element is in the main web or iframe
        var iframes = document.getElementsByTagName('iframe');// Get iframes
        for(var i = 0; i<iframes.length; i++ ){
            var focused = getActiveElement( iframes[i].contentWindow.document );// Recall
            if( focused !== false ){
                return focused; // The focused
             }
         }
     }
     else return document.activeElement;
};

这是结果:

r = requests.post("https://graph.facebook.com/v" + str(self.version) + "/" + path + "?" +
    post_data, files={captions_file: open(captions_file, 'rb')})

我的困惑是文档将标题文件指定为filename.locale.srt,但错误指定了MIME类型application / octet-stream的文件,其中.srt文件不适用。

如何通过application / octet-stream发送.srt文件?

2 个答案:

答案 0 :(得分:0)

我试图为Facebook视频上传字幕,但我得到的唯一错误是“(#100)文件无效。预期的以下类型之一的文件:application / octet-stream”。

所以我在facebook上写了一张票,看起来这是有效的错误。

  

我正在尝试为视频添加字幕,但我遇到的唯一错误是   “文件无效。以下类型之一的预期文件:application / octet-stream”

     

我正在使用的文件是http://www.apps.bg/filename.bg_BG.srt

     

重现错误的步骤:   1.尝试从api上传字幕(/v2.4/video_id/captions)

我得到的答案是

  

“我们设法重现了这个问题,它似乎是有效的   错误。我们将此分配给相应的团队。“

https://developers.facebook.com/bugs/1470577926590877

所以我们必须等待修复它 - 或者如果有人找到了解决方法。 希望这对你有所帮助。

答案 1 :(得分:0)

我遇到了同样的问题。解决方案是使用文件本地广告传递它而不是URL地址。像这样:

curl -i -X POST -F "captions_file=@\"subs.bg_BG.srt\"" https://graph.facebook.com/v2.7/***/captions?access_token...