Jak programowo uzyskać kod HTML osadzony na wideo hostowanym w programie youtube. Co to jest Java API?Jak programowo programowo wbudować kod HTML do pliku wideo umieszczonego w programie youtube?
Odpowiedz
Zakładając, że masz adres URL filmu, generowanie go jest dość proste. Potrzebujesz końca adresu URL (części po /watch? V =, nazwijmy to ID). Aby generować html iframe osadzenia, wystarczy umieścić go w odpowiednim miejscu (w atrybucie src, nie zawierają nawiasy):
<iframe title="YouTube video player" class="youtube-player" type="text/html" width="640"
height="390" src="http://www.youtube.com/embed/{ID}" frameborder="0"
allowFullScreen></iframe>
Istnieje kilka sposobów, aby uzyskać parametr v Z URL. Wyrażenie regularne zadziałałoby.
Użyj YouTube Data API (jest fabrycznie zainstalowany GData client libraries lub możesz sam zrobić rzeczy HTTP/XML).
Jeden z wpisów będzie zawierał adres URL dla pliku SWF z możliwością umieszczenia, jeśli wideo można osadzać.
Chociaż zaakceptowana odpowiedź działa, jeśli chcesz zrobić to programowo, potrzebujesz odpowiedniego współczynnika proporcji, aby wygenerować optymalne wymiary iframe dla wideo. Napisałem następującą funkcję php, która może wygenerować link dla ciebie w locie. Wykorzystuje narzędzia bash youtube-dl, aby uzyskać informacje na temat filmu z dowolnego linku youtube, więc trzeba się upewnić, że jest zainstalowany (apt-get install youtube-dl
powinien działać na Ubuntu lub innych smaków debian)
function getYoutubeEmbed($link, $size = [], $options = [], $privacy = false) {
$options += [
'rel' => true, // Show suggested videos when the video finishes.
'controls' => true, // Show player controls.
'showinfo' => true, // Show video title and player actions.
];
$json = json_decode(exec('youtube-dl -j --no-warnings ' . $link . ' 2>/dev/null'));
if ($json && !empty($id = $json->id) && !empty($width = $json->width) && !empty($height = $json->height)) {
$args = [];
foreach ($options as $option => $value) {
if (!$value) {
$args[] = $option . '=0';
}
}
if ($size) {
if (!empty($size['width']) && !empty($size['height'])) {
$width = $size['width'];
$height = $size['height'];
} else if (!empty($size['width'])) {
$height = ceil(($height * $size['width'])/$width);
$width = $size['width'];
} else if (!empty($size['height'])) {
$width = ceil(($width * $size['height'])/$height);
$height = $size['height'];
}
}
$url = ($privacy ? 'www.youtube-nocookie.com/embed/' : 'www.youtube.com/embed/') . $id . ($args ? '?' . implode('&',$args) : '');
$iframe = '<iframe width="' . $width . '" height="' . $height . '" src="//' . $url . '" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>';
return $iframe;
} else {
return false;
}
}
funkcja jest dość oczywiste objaśnienie, ale tutaj jest podział:
- Co najmniej trzeba podać link dla pierwszego argumentu.
- Drugi argument to tablica szerokości, wysokości lub obu. Jeśli podasz tylko jeden, potraktujesz zachowany domyślny współczynnik proporcji i obliczysz dla siebie inny wymiar (tak ja zwykle go używam).
- Trzeci argument jest opcjonalną tablicą argumentów, które są udokumentowane w samej funkcji.
- fourt jest opcjonalnie logiczna argumentem „Prywatność”, co jest wyjaśnione:
Włącz tryb prywatności. Po włączeniu trybu zwiększonego prywatności YouTube nie będzie przechowywać informacji o użytkownikach w Twojej witrynie, chyba że odtwarza film. Przykładem
Zastosowanie:
$link = 'https://www.youtube.com/watch?v=adAqQct3vRI';
echo getYoutubeEmbed($link, ['width' => 560], ['rel' => false]);
wyjściowa:
<iframe width="560" height="315" src="//www.youtube.com/embed/605gdJGdaPE?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>
- 1. Programowanie programowo komentarzy do filmów z YouTube
- 2. Programowo programowo zapisuj tekst do pliku audio.
- 3. Jak programowo znaleźć pamięć w programie iPhone?
- 4. Jak programowo przewinąć element HTML?
- 5. Ukrywanie aktywnego skoroszytu programowo w programie Excel
- 6. Jak ustawić programowo programowo?
- 7. Jak otworzyć programowo programowo
- 8. nagrywania wideo w iPhone SDK programowo
- 9. Jak programowo uzyskać dostęp do udziału pliku
- 10. Zmieniaj strefę czasową w programie Android programowo
- 11. Ustawianie ujemnego marginesu w programie View programowo
- 12. tworzenia pliku plist programowo
- 13. Minimal kod używać Stambuł programowo
- 14. odtwarzacz multimedialny classic - programowo przeskakuje do punktu wideo/audio
- 15. Otwarcie pliku html offline programowo w Windows Phone 7
- 16. Jak programowo uzyskać obraz kontaktu w programie Outlook 2010?
- 17. Dropwizard: Jak zatrzymać programowo programowo
- 18. Przechwytywanie ekranu Android i tworzenie wideo programowo
- 19. Jak programowo dodawać węzły w programie DevExpress TreeList?
- 20. Wstawianie HTML programowo w edytorze wysiHTML5
- 21. Jak programowo analizować i modyfikować kod C#
- 22. Przełącz programowo programowo
- 23. Jak zatrzymać programowanie wideo w VideoView programowo w systemie Android?
- 24. Jak programowo przekształcić Selenese (html) na Python?
- 25. Przesyłaj wideo z serwera php na Androida programowo
- 26. Streaming wideo z YouTube
- 27. Jak programowo w programie WPF narysować krzywą Beziera?
- 28. Program do strumienia wideo MPEG-4 programowo na Androidzie
- 29. Lokalizacja funkcji programowo programowo
- 30. Jak programowo wybrać wiersz lub komórkę w programie WPF DataGrid?
Powyższa metodologia wydaje się fajne, ale możemy polegać na tej techniki, aby zakładać, że ten format wi W przyszłości YouTube nie będzie modyfikowany. Uwaga: Planuję przechowywać ten identyfikator w bazie danych i konstruować ten kod HTML zamiast przechowywania całego kodu HTML. Czy to jest wskazane? – Jason
Pewnie, zrobiłem to wcześniej w zakładach produkcyjnych. Właściwie używałem starego stylu ebmed HTML, ale nadal działa, mimo że ten nowy element iframe jest teraz preferowany. Google jest bardzo zainteresowane utrzymaniem zgodności z wszystkimi aktualnie umieszczanymi filmami, więc nie musisz się niczym martwić. – probabilityzero
YouTube od dawna korzysta z tej metody i wydaje się, że obsługuje ją w ten sposób celowo .. jak stwierdzono. –