2014-06-06 3 views
-1

나는 통해 동영상을 업로드하려고 할 때 나는 꽤 HTTP 400 faliures의 수났습니다 실패한 업로드 동영상의 공통점은 동영상 스 니펫 데이터 (제목/설명) 어딘가에 <, > 같은 문자가 있다는 것입니다. 충돌하는 캐릭터를 제거하면 비디오가 잘 업로드됩니다.유튜브 업로드 V3 400 잘못된 요청은

문서에서 찾을 수없는 것 같지만 일부 종류의 위생 처리가 필요합니까? HTML 이스케이프? 그 모든 걸 제거 ^A-Za-z0-9? <의 비 -HTML 사용은 <3과 같은 것은 어떻습니까? 유니 코드 문자는 어떻습니까? 나는 혼란스러워.

편집 : 내 질문에 대답하려면, 여기에 Google의 혐오와 관련된 싫어하는 글을 >, < 자로 작성했습니다. 나는 단순히 비슷한 UNICODE 문자로 대체합니다.

// <and> need to be stripped out, or the upload will throw 400 error 
// https://developers.google.com/youtube/2.0/reference#youtube_data_api_tag_media:description 
sanitize := func(val string) string { 
    replacements := map[string]string{ 
     "<": "≺", 
     ">": "≻", 
    } 
    for k, v := range replacements { 
     val = strings.Replace(val, k, v, -1) 
    } 
    return val 
} 

답변

1

한 가지 문제는 다음과 같습니다

이 가능한 "새로운 스타일"구글 API를 구글 검색 서비스의 JSON 설명 파일에서 자동으로 생성 된 이동 도서관이다.

발표 이메일 : http://groups.google.com/group/golang-nuts/browse_thread/thread/6c7281450be9a21e

상태 : 다른 Google API 클라이언트에 상대는,이 라이브러리는 표시 알파입니다. 일부 고급 기능이 작동하지 않을 수 있습니다. 문제가 발견되면 버그를 제출하십시오.

JSON 서비스 정의에서 자동 생성 되었기 때문에 적절한 번역이 누락되었을 수 있습니다. API 문서에서 http 프로토콜을 사용 중이라고 가정하면 비디오 정보는 JSON blob로 전송됩니다.

이동은 특수 문자를 변환합니다. 그래서 <> 등은 JSON 유효한 유니 코드 이스케이프 시퀀스가됩니다. Google은 이스케이프 시퀀스를 싫어하므로 문자 그대로 문자를 보내려 할 수 있습니다. 그러나 나는 이것이 그 문제인지 정말로 의심한다.

> youtube는 당신이 HTML에 넣을 수 없기 때문에 당신이하고있는 일이나 html과 비슷한 것으로 보이면 잘못된 문자 오류의 원인 일 수 있습니다. 당신은 html과 비슷한 것으로 보이는 것을 위생해야 할 것입니다.

http://play.golang.org/p/hv2h7PA0tr

+0

단순히 같은 단일 문자를 가진, HTML을 추가하고 있지 않다가'>'을 만드는 :

https://groups.google.com/forum/#!topic/youtube-api-gdata/EcYPPlHjllY

이 golang 유니 코드 이스케이프 시퀀스를 생성 보여줍니다

이 게시물을 참조 실패. 이러한 문자를 제거하면 컨텍스트가 손실 될 수 있습니다. 차라리 콘텐츠 스트립 비트보다 거부당하는 이유를 알아 냈습니다. –