2009-03-10 6 views
6

staramy się korzystać z interfejsu Google API API, aby przesyłać filmy z naszej witryny do YouTube bezpośrednio przez przeglądarkę.Integracja API YouTube ASP.NET - przesyłaj wideo za pomocą jednej strony

Interfejs API działa dwuetapowo, w pierwszym kroku musimy utworzyć obiekt wideo zawierający wszystkie metadane, takie jak tytuł, tagi, opis, kategorię itp. Następnie musimy wysłać żądanie z tym obiektem do serwisu YouTube i uzyskać Obiekt Token wygenerowany jako odpowiedź. Ten obiekt tokenu ma jako swoje wartości Token i Token URL.

W drugim kroku sugerują, że powinniśmy utworzyć formularz z atrybutem akcji ustawionym na tokenowy adres URL. Ten formularz powinien mieć kontrolę przesyłania plików i ukryte pole z wartością tokena jako jej wartością. Gdy ten formularz zostanie opublikowany, zostanie przesłany do YouTube.

Działa to świetnie, jeśli mamy do czynienia z dwuetapowym procesem, najpierw prosząc użytkowników o metadane, a następnie przekierowawszy je na drugą stronę w celu rzeczywistego przesłania wideo. Jednak staramy się to osiągnąć na pojedynczej stronie, przedstawiając użytkownikowi pojedynczy krok.

Mamy MasterPage z podanym w nim "aspnetForm", z powodu którego nie możemy mieć innej formy z właściwością runat='server'.

Próbowaliśmy zmodyfikować atrybut działania aspnetFrom za pomocą JavaScript/code-behind, ale pozostaje taki sam, bez względu na to, co robimy.

Próbowaliśmy także umieścić inny formularz zagnieżdżony, którego znacznik działania zostanie ustawiony na zdarzeniu kliknięcia przycisku, po otrzymaniu pierwszej odpowiedzi z serwisu YouTube z tokenem. Ale nawet to nie działa, ponieważ forma nie jest tworzona w czasie, gdy metoda ta jest nazywana.

Próbowaliśmy kilku podejść, ale żaden nie działa. Wszelkie sugestie na ten temat byłyby świetne.

Jeśli masz więcej pytań, aby jasno zrozumieć sytuację .. proszę dać mi znać ..


Aktualizacja:

Dzięki za odpowiedzi facetów.

Zmieniliśmy logikę biznesową, aby rozwiązać problem. To było dawno temu i nie szukam rozwiązania od teraz.

Jednak pytanie jest nadal otwarte i otrzymuję odpowiedzi. Naprawdę doceniam wszelką pomoc, a zatem pozostawiłbym pytanie otwarte na dalsze dyskusje.

Odpowiedz

2

Chciałbym utworzyć formularz, aby wyświetlić użytkownikowi z pól tekstowych metadanych i kontroli przesyłania pliku wideo.

Następnie w kodzie, który obsługuje odświeżenie, można przesłać metadane do interfejsu API serwisu YouTube, aby uzyskać wartość tokenu.

wtedy spreparować takie HttpWebRequest z tokenem wartość przekazana do metody obiektu WebRequestCreate i ustawić właściwość Method do Post. Następnie dodajesz przesłane wideo (więcej informacji na ten temat można znaleźć na stronie dr evil's answer to "Upload files with HTTPWebrequest (multipart/form-data)"), a gdy zadzwonisz pod numer GetResponse(), Twój plik zostanie przesłany.

warte uważaj na:

  1. ScriptTimeout: Jeśli pozwalając użytkownikom na przesyłanie dużych plików do serwisu YouTube - jeśli to zajmuje trochę czasu, aby go przesłać, a następnie skrypt mógłby być zakończony przedwcześnie .
  2. Przepustowość: będziesz mieć zarówno przesłanie na swoje serwery, a następnie przesłanie do YouTube, aby je uwzględnić - umożliwiając użytkownikowi przesyłanie bezpośrednio do YouTube w dwuetapowym procesie, w którym nigdy nie dotkniesz filmu, i nigdy nie zbliża się do niego Twoje serwery - może to być problem dla Ciebie lub Twojego dostawcy usług hostingowych - na przykład mój host nie liczy ruchu przez FTP w ramach miesięcznej przepustowości, ale zawiera pliki przesłane/pobrane przez tę witrynę.
+0

tak .. to podejście wydaje się być najbliżej tego, co ostatecznie skończyło się robi. .: 0) –

0

Można pisać programowo do formularza YouTube. Niedawno zmodyfikowałem przykład znaleziony pod numerem http://www.codeproject.com/KB/cs/uploadfileex.aspx, aby napisać kod, który opublikował plik na stronie trzeciej jako nocne zadanie.

Wymagałoby to wydajności, ponieważ plik musiałby zostać przesłany na serwer, a następnie do YouTube, a nie bezpośrednio do YouTube, ale jest to opcja.

+0

yeah..i myślał, że robi w ostateczności .. :( Dzięki za pomoc chociaż .. –