YouTube Video HTTP content-length
-
hi
HttpQueryInfoA schlägt bei mir fehl, wenn ich den content-length des http headers eines youtube videos auslesen möchte.
mein code:
BOOL GetWebResource(LPCSTR lpszAddress) { if (!lpszAddress) return FALSE; HINTERNET hInet = InternetOpenA("DL.Web.Resource", 0, NULL, NULL, INTERNET_OPEN_TYPE_DIRECT); if (!hInet) return FALSE; HINTERNET hURL = InternetOpenUrlA(hInet, lpszAddress, NULL, 0, 0, NULL); if (!hURL) { InternetCloseHandle(hInet); return FALSE; } DWORD lpvBuffer; DWORD dwBufferLen = sizeof(lpvBuffer); if (!HttpQueryInfoA(hURL, HTTP_QUERY_CONTENT_LENGTH | HTTP_QUERY_FLAG_NUMBER, &lpvBuffer, &dwBufferLen, NULL)) { InternetCloseHandle(hInet); InternetCloseHandle(hURL); return FALSE; } printf("success: %d\n", GetLastError()); return TRUE; } GetWebResource("http://www.youtube.com/watch?v=GyT_KyAqDEc");
getlasterror meldet:
ERROR_WINHTTP_HEADER_NOT_FOUND12150
The requested header cannot be located.
wobei ich aber sicher bin, dass es ein http header gibt.
wo liegt das problem? der code funktioniert ja ansich mit anderen web resourcen.
danke im voraus
-
Ich habe keine Länge bekommen:
HTTP/1.0 200 OK
Date: Sat, 18 Jan 2014 19:06:36 GMT
Server: gwiseguy/2.0
X-Frame-Options: SAMEORIGIN
Set-Cookie: PREF=f1=50000000; path=/; domain=.youtube.com; expires=Fri, 19-Sep-2014 06:59:36 GMT
Set-Cookie: YSC=7jfmaQLZGNQ; path=/; domain=.youtube.com; httponly
Set-Cookie: VISITOR_INFO1_LIVE=jdkKlNSE0yc; path=/; domain=.youtube.com; expires=Fri, 19-Sep-2014 06:59:36 GMT
Content-Type: text/html; charset=utf-8
X-XSS-Protection: 1; mode=block; report=https://www.google.com/appserve/security-bugs/log/youtube
X-Content-Type-Options: nosniff
Expires: Tue, 27 Apr 1971 19:44:06 EST
P3P: CP="This is not a P3P policy! See http://support.google.com/accounts/bin/answer.py?answer=151657&hl=de-DE for more info."
Cache-Control: no-cache
Alternate-Protocol: 80:quic
X-Cache: MISS from judith
X-Cache-Lookup: MISS from judith:3128
Via: 1.0 judith (squid/3.0.STABLE5)
Proxy-Connection: closemfg Martin
-
lol, d.h., dass ich das ende quasi selbst berechnen muss, wuerde ich mal sagen.
-
egewggaqgfea schrieb:
lol, d.h., dass ich das ende quasi selbst berechnen muss, wuerde ich mal sagen.
Du muß halt die Ressource laden und dann deren Länge bestimmen. Vielleicht gibt sich ja YouTube die Mühe, Dir die Länge zu ermitteln, wenn Du eine persistent connection aufbaust. Das habe ich aber nicht getestet, weil das von dem von mir benutzten Programm nicht unerstützt wird.
mfg Martin
-
Content-Length zu senden ist kein Muss.
Wahrscheinlich kennt youtube die Länge vor dem Senden gar nicht, da der Inhalt dynamisch erstellt wird.