5

以下に示すように、通常の YouTube ブラウザベースのアップロード フォームがあります。IE、Chrome、および古いバージョンの Firefox でうまく機能します。ただし、私の Firefox 16.0.2 は POST でハングアップします。Firefox 16.x を搭載した他のコンピューターで問題を再現しました。

YouTube の URL をhttps://uploads.gdata.youtube.comからhttp://uploads.gdata.youtube.comに変更して SSL を手動でオーバーライドすると、ファイルは正しくアップロードさます

さらに奇妙なことに、リクエストはFirebugの [ネット] タブにまったく記録されません。Firefox のWeb コンソールでは、リクエストは表示されますが、レスポンスとステータス コードがまったく表示されません。次に、[ HTTPS トラフィックの復号化] オプションを有効にして Fiddler を使用すると、ファイルが正しくアップロードされます。

何が起こっているのか、または問題を解決せずに SSL トラフィックを監視する方法を知っている人はいます?

<!DOCTYPE html>
<html>
    <head><title>YouTube Test</title></head>
    <body>
        <form id="frmYouTube" enctype="multipart/form-data" method="post" action="https://uploads.gdata.youtube.com/action/FormDataUpload/YOU_TUBE_URL?nexturl=https%3a%2f%2fMY.DOMAIN.COM%2fDIR_1%2fDIR_2%3fid2%3dLOCAL_ID">
        <table>
            <tr><td><input type="file" name="file" /></td></tr>
            <tr><td>
                    <input type="hidden" name="token" value="MY_YOUTUBE_TOKEN" />
                    <input type="submit" value="Upload" />
            </td></tr>
        </table>
        </form>
</body>
</html>

YouTube の URL とトークンは、バックエンドで ASP.Net と Google.GData.YouTube ライブラリを使用して生成されます。そのコードの一部を次に示します。

public class BaseModel
{

    public string SITE_YOUTUBE_APP_NAME = "";
    public string SITE_YOUTUBE_DEV_KEY = "";
    public string SITE_YOUTUBE_USERNAME = "";
    public string SITE_YOUTUBE_PASSWORD = "";
    public string YOUTUBE_CATEGORY = "";

    public FormUploadToken FormToken;

    public void Load()
    {

        YouTubeRequestSettings settings = new YouTubeRequestSettings(
            SITE_YOUTUBE_APP_NAME, SITE_YOUTUBE_DEV_KEY,
            SITE_YOUTUBE_USERNAME, SITE_YOUTUBE_PASSWORD);

        YouTubeRequest request = new YouTubeRequest(settings);

        Video newVideo = new Video();

        string title = "Test Title";

        string description = "Test Description";

        newVideo.Title = title;
        newVideo.Tags.Add(new MediaCategory(YOUTUBE_CATEGORY, YouTubeNameTable.CategorySchema));
        newVideo.Keywords = "test";
        newVideo.Description = description;
        newVideo.YouTubeEntry.Private = false;

        FormToken = request.CreateFormUploadToken(newVideo);
    }
}
4

2 に答える 2

0

私のテストでは、YouTube ブラウザー ベースのアップロードは非常に気まぐれで、動作する場合もあります (1 ~ 5% の可能性)。ほとんどの場合は動作しません。しかし、ほとんどの場合、初期化されないことはわかっています。

ただし、ファイアウォールを無効にすると、アップロードが成功する可能性が高くなります。これがなぜなのかはわかりません(もちろん、幸運な観察である可能性があります)。

于 2012-11-08T13:32:45.917 に答える
0

Firefox 17 が利用可能になりましたが、Google はこの機能について Firefox 16 を完全にはサポートしていないため、Firefox 16 を使用しているユーザーに Firefox 17 にアップグレードするか、別のブラウザーを使用するよう警告を追加しました。理想的ではありませんが、Firefox 16 で失敗したテスト ユーザーの数を考えると、これが唯一の妥当な解決策でした。

于 2012-12-20T19:14:22.607 に答える