YouTube是一个视频共享网站,用户可以在该网站上传,分享和观看视频。标有“youtube”的StackOverflow问题应该与特定的编程问题,软件工具或库有关。如果您的问题与YouTube API有关,则还应添加“youtube-api”标记。
如何更改打开的 YouTube 视频的窗口标题以包含频道名称?
基本上,我希望扩展程序做的是,当我打开 YouTube 视频时,获取 YouTube 频道的名称并将其添加到窗口标题中,以便我可以仅阻止某些频道的 YouTube 视频...
<?php $youtubeUrl = "https://www.youtube.com/watch?v=Ko2JcxecV2E"; $content = json_encode ($file = shell_exec("youtube-dl.exe $youtubeUrl ")); $input_string =$content; $regex_pattern = "/Destination:(.*.mp4)/"; $boolean = preg_match($regex_pattern, $input_string, $matches_out); $extracted_string=$matches_out[0]; $file =explode(': ',$extracted_string,2)[1]; // Quick check to verify that the file exists if( !file_exists($file) ) die("File not found"); // Force the download header("Content-Disposition: attachment; filename=\"$file\"" ); header("Content-Length: " . filesize($file)); header("Content-Type: application/octet-stream;"); readfile($file); ?> 当我运行此文件时,首先使用 youtube-dl.exe 将相应的 YouTube 视频下载到该 PHP 文件所在的本地主机服务器文件夹,然后将其从该文件夹推送到浏览器下载(强制下载)。 如何直接开始下载到用户的浏览器? 该文件在本地主机上运行良好,但在远程服务器上运行不佳。 首先,您需要为您的网络服务器平台使用 youtube-dl 版本。 youtube-dl.exe 是针对 Windows 的构建,而大多数虚拟主机使用 Linux。 然后使用 passthru PHP 函数通过 youtube-dl 命令行参数 来运行 -o -。这些参数使 youtube-dl 将下载的视频输出到其标准输出,而 passthru 将标准输出传递到浏览器。 您还需要在passthru之前输出标题。请注意,在这种情况下您无法知道下载大小。 header("Content-Disposition: attachment; filename=\"...\"" ); header("Content-Type: application/octet-stream"); passthru("youtube-dl -o - $youtubeUrl"); 如果您需要视频元数据(如文件名),可以先使用 youtube-dl 命令行参数运行 -j 来获取 JSON 数据,而无需下载视频。 您还需要 1) Web 服务器上的 Python 解释器 2) 能够使用 passthru 函数 3) 从 PHP 脚本连接到 YouTube。所有这些通常都受到虚拟主机的限制。 问题可能出在:shell_exec("youtube-dl.exe $youtubeUrl ") 首先,一些主机出于安全原因禁用了 shell_exec。 其次,youtube-dl.exe 看起来可能是一个 Windows 脚本,而您的远程服务器可能是基于 Linux 的。
Google 表格 IMPORTXML 不适用于 YouTube 网址
我希望从 Google 表格中的 YouTube 视频中提取视频标题或视频说明。我有 URL,当我编写 IMPORTXML 公式时,它一直显示“分享您的 vi...
我有连接到 YouTube 的代码,然后填写表格然后提交到数据库。我正在努力检索 YouTube 频道名称、头像和订阅者。我已经可以检索频道 ID 和观看次数
我使用自定义 WP 主题,并在 Elementor 中制作侧边栏。我有多个侧边栏,其中包含多个 YouTube 视频,将 URL 放置在平面文本中(在文本块中)。这就是内置功能的地方...
我正在尝试在我的离子应用程序中嵌入视频,但加载页面时会显示错误: 获取 https://redirector.googlevideo.com/videoplayback?pcm2cms=yes&key=yt6&ei=5HE...QBGK&c=WEB&am...
我想在调整大小时停止 YouTube 播放 我有一个 iframe <p>我想在调整大小时停止 YouTube 播放</p> <p>我有一个 iframe</p> <pre><code> <iframe id="tutube" class="youTubeVideo" frameborder="0" height="100%" width="100%" allowscriptaccess="always" src="https://youtube.com/embed/d3cRXJ6Ww44?showinfo=0&autohide=1&enablejsapi=1"> </iframe> </code></pre> <p>和一个函数</p> <pre><code>function stopTheVideo(){ var div = document.getElementById("tutube"); var iframe = div.getElementsByTagName("iframe")[0].contentWindow; div.style.display = state == 'hide' ? 'none' : ''; func = state == 'hide' ? 'pauseVideo' : 'playVideo'; iframe.postMessage('{"event":"command","func":"' + func + '","args":""}', '*'); }; </code></pre> <p>我称之为</p> <pre><code><body onresize="stopTheVideo();" </code></pre> <p>我明白了</p> <pre><code>Uncaught TypeError: Cannot read property 'contentWindow' of undefinedindex10.html:198 toggleVideoindex10.html:206 resizeFunctionsindex10.html:31 onresize </code></pre> <p>有什么想法吗?</p> </question> <answer tick="true" vote="2"> <p>问题是您的代码期望您的 <pre><code><iframe></code></pre> 包含在另一个带有 <pre><code>id="tutube"</code></pre> 的元素内。 <pre><code>getElementsByTagName()</code></pre> 即使匹配,也不会选择调用它的元素。</p> <p>因此,您可以重构 HTML,使其符合 JS 的期望:</p> <pre><code><body onresize="stopTheVideo();"> <div id="tutube"> <iframe class="youTubeVideo" frameborder="0" height="100%" width="100%" allowscriptaccess="always" src="https://youtube.com/embed/d3cRXJ6Ww44?showinfo=0&autohide=1&enablejsapi=1"> </iframe> </div> <script> var state= 'hide'; function stopTheVideo(){ var div = document.getElementById("tutube"); var iframe = div.getElementsByTagName("iframe")[0].contentWindow; div.style.display = (state == 'hide') ? 'none' : ''; func = (state == 'hide') ? 'pauseVideo' : 'playVideo'; iframe.postMessage('{"event":"command","func":"' + func + '","args":""}', '*'); }; </script> </body> </code></pre> <p>重写您的 JS,使其与您的 HTML 兼容:</p> <pre><code>function stopTheVideo(){ var iframe = document.getElementById("tutube").contentWindow; div.style.display = state == 'hide' ? 'none' : ''; func = state == 'hide' ? 'pauseVideo' : 'playVideo'; iframe.postMessage('{"event":"command","func":"' + func + '","args":""}', '*'); }; </code></pre> </answer> </body></html>
我嵌入了带有 magnificpopup 脚本的视频。 我无法在嵌入的 youtbe 复制结束时删除相关视频。 这是我尝试过的代码: 我嵌入了带有 magnificpopup 脚本的视频。 我无法在嵌入的 youtbe 复制结束时删除相关视频。 这是我尝试过的代码: <a class="popup-youtube" href="https://www.youtube.com/watch?rel=0&feature=player_detailpage&v=83UHRghhars"> 但不起作用。 以下代码也不重现视频 <a class="popup-youtube" href="https://www.youtube.com/watch?feature=player_detailpage&v=83UHRghhars&rel=0"> 如果我输入 youtube 告诉我的嵌入代码: //www.youtube.com/embed/83UHRghhars?rel=0 视频无法播放。我做错了什么? 这是一种通过添加额外的 JavaScript 来实现此目的的方法,如此处所示。 <script> jQuery(window).load(function(){ jQuery('a[href*="youtube.com/watch"]').magnificPopup({ type: 'iframe', iframe: { patterns: { youtube: { index: 'youtube.com', id: 'v=', src: '//www.youtube.com/embed/%id%?rel=0&autoplay=1' } } } }); }); </script> 如果不需要,可以删除“&autoplay=1”。 这里有一个问题。我做了这个解决方法。 $('.js-home-video .js-popup-youtube').magnificPopup({ // your default config here // All below settings are default except the rel attribute in youtube-src // This is here to remove the related videos from showing up after the video ends // Adding rel=0 from url in html template stopped autoplay, hence this hack iframe: { markup: '<div class="mfp-iframe-scaler">'+ '<div class="mfp-close"></div>'+ '<iframe class="mfp-iframe" frameborder="0" allowfullscreen></iframe>'+ '</div>', // HTML markup of popup, `mfp-close` will be replaced by the close button patterns: { youtube: { index: 'youtube.com/', // String that detects type of video (in this case YouTube). Simply via url.indexOf(index). id: 'v=', // String that splits URL in a two parts, second part should be %id% // Or null - full URL will be returned // Or a function that should return %id%, for example: // id: function(url) { return 'parsed id'; } src: '//www.youtube.com/embed/%id%?autoplay=1&rel=0' // URL that will be set as a source for iframe. } } } } 如果您使用的是混合图库(例如混合的图像和视频之一),那么您可能想要覆盖放大弹出窗口构建 YouTube 嵌入的方式。 youtube 的默认设置是 youtube: { index: 'youtube.com/', // String that detects type of video (in this case YouTube). Simply via url.indexOf(index). id: 'v=', // String that splits URL in a two parts, second part should be %id% // Or null - full URL will be returned // Or a function that should return %id%, for example: // id: function(url) { return 'parsed id'; } src: '//www.youtube.com/embed/%id%?autoplay=1' // URL that will be set as a source for iframe. } 这意味着 ID 是 v= 之后的所有内容,它只是在创建嵌入代码时将其保留并在末尾粘贴 autoplay=1 。 要更改此设置,您可以传入要使用的任何特殊 iframe youtube 模式: iframe: { patterns: { youtube: { src: '//www.youtube.com/embed/%id%?autoplay=1&rel=0&feature=player_detailpage' } } } 在这里,我们调整了源代码,以便它将正常使用 id 构建嵌入,然后粘贴您的 rel 和特征参数(以及自动播放) 如果这样做,则将参数保留在 html 标记中的 url 中,或者在末尾设置 v= 属性,以便在构建嵌入 url 时不会添加额外的参数。 最终的外观可能是这样的: $('.gallery-list').magnificPopup({ delegate: 'a', type: 'image', gallery: { enabled: true }, iframe: { patterns: { youtube: { src: '//www.youtube.com/embed/%id%?autoplay=1&rel=0' } } } }); 你的元素可能是: <div class="gallery-list"> <a class="popup-youtube mfp-iframe" href="https://www.youtube.com/watch?v=83UHRghhars">Click here</a> <img class="mfp-image" href="http://domain/image.jpg" width="100" height="200" /> </div> 视频链接上的 mfp-iframe 类告诉 magnific 使用 iframe 功能。 上面的初始化代码告诉 magnific 默认使用图像,但 mfp-iframe css 类将覆盖视频的该类。 现在,当有人点击视频时,放大的弹出窗口应该通过 v= 参数获取视频 id,然后使用该 id 构建嵌入代码,然后附加额外的自动播放和 rel url 参数。 转到 jquery.magnific-popup.min.js 或 jquery.magnific-popup.js,无论您在网站上嵌入什么内容。 使用文本编辑器搜索和替换,如下所示: Search: youtube.com/embed/%id%?autoplay=1<br> Replace: youtube.com/embed/%id%?rel=0&autoplay=1 点击“保存”。 瞧
Youtube - 如何在嵌入链接中强制使用 480p 视频质量 / <iframe>
如何强制 iframe Youtube 视频的 480p 视频质量? 示例代码: </</desc> <question vote="48"> <p>如何为 iframed Youtube 视频强制使用 480p 视频质量?</p> <p>示例代码:</p> <pre><code><iframe width="560" height="315" src="http://www.youtube.com/embed/FqRgAs0SOpU" frameborder="0" allowfullscreen></iframe> </code></pre> </question> <answer tick="false" vote="75"> <p>将以下参数附加到 Youtube-URL:</p> <p>144p:&vq=小<br/> 240p:&vq=小<br/> 360p:&vq=中 <br/> 480p:<strong>&vq=大</strong> <br/> 720p:&vq=hd720 <br/></p> <p>例如:</p> <pre><code>src="http://www.youtube.com/watch?v=oDOXeO9fAg4" </code></pre> <p>变成:</p> <pre><code>src="http://www.youtube.com/watch?v=oDOXeO9fAg4&vq=large" </code></pre> </answer> <answer tick="false" vote="6"> <p>您还可以使用 1080 高清值:</p> <p>240p:&vq=小、360p:&vq=中、480p:&vq=大、720p:&vq=hd720、<strong>&vq=hd1080</strong></p> </answer> <answer tick="false" vote="2"> <p>我发现,截至 2012 年 5 月,如果您设置帧大小,使最小像素区域(宽度 • 高度)高于特定阈值,则质量会从 360p 提升到 480p(如果您的视频为至少 640 x 360。</p> <p>我发现将嵌入帧的帧大小设置为 <strong>780</strong> x 480 会触发 480p 质量,而不会扭曲视频(按比例放大)。 640 x <strong>585</strong> 也以这种方式工作。我还使用了 <pre><code>&hd=1</code></pre> 参数,但如果您的视频不是以高清(720p 或更高)上传,我怀疑这是否有太大的控制作用。</p> <p>例如:</p> <pre><code><iframe width="780" height="480" src="http://www.youtube.com/embed/[VIDEO-ID]?rel=0&fs=1&showinfo=0&autohide=1&hd=1"></iframe> </code></pre> <p>当然,缺点是通过设置这些静态框架尺寸,您很可能会在侧面或上方和下方看到黑条,具体取决于您的喜好。</p> <p>如果您不关心控件被截断,您可以继续使用 CSS 和 <pre><code>overflow: hidden</code></pre> 将黑条从框架中裁剪出来,前提是您知道视频的确切尺寸。</p> <p>希望这有帮助,并希望嵌入方法很快有一天再次获得离散质量参数!</p> </answer> <answer tick="false" vote="1"> <p>您可以使用 <a href="https://developers.google.com/youtube/js_api_reference" rel="nofollow">YouTube JavaScript 播放器 API</a>,它本身具有设置播放质量的功能。 </p> <pre><code>player.setPlaybackQuality(suggestedQuality:String):Void </code></pre> <blockquote> <p>此功能设置当前视频的建议视频质量。该函数使视频以新质量在当前位置重新加载。如果播放质量确实发生变化,则只会针对正在播放的视频发生变化。调用此函数并不能保证播放质量实际上会改变。但是,如果播放质量确实发生变化,则会触发 onPlaybackQualityChange 事件,并且您的代码应该响应该事件,而不是调用 setPlaybackQuality 函数。 <a href="https://developers.google.com/youtube/js_api_reference#Playback_quality" rel="nofollow">[来源]</a></p> </blockquote> </answer> <answer tick="false" vote="0"> <p>有关此主题的一些更新信息</p> <p><a href="https://developers.google.com/youtube/player_parameters" rel="nofollow noreferrer">https://developers.google.com/youtube/player_parameters</a></p> <p><strong>启用jsapi</strong> 将该参数的值设置为 1 可以通过 IFrame Player API 调用来控制播放器。默认值为 0,这意味着无法使用该 API 控制播放器。</p> <p>...?rel=0&vq=large&enablejsapi=1</p> </answer> <answer tick="false" vote="-2"> <p>您可以使用<pre><code>fmt=</code></pre>参数并根据下表填写值:</p> <p><a href="http://en.wikipedia.org/wiki/YouTube#Quality_and_codecs" rel="nofollow">http://en.wikipedia.org/wiki/YouTube#Quality_and_codecs</a></p> <p>例如:您的网址将变为:</p> <pre><code>http://www.youtube.com/embed/FqRgAs0SOpU?fmt=35 </code></pre> </answer> </body></html>
我想从YouTube频道的特色频道模块中获取所有频道,使用YouTube的API V3 我发个图片,你可以看看是什么模块的Featured频道 这是最...
我需要将 Youtube 上的视频播放为 MP4。 我的系统(Android 手机)不支持 Flash。 它可以播放 MP4 视频。 所以我正在考虑创建一个播放 Youtube 视频的网页。 我...
get_video_info YouTube 端点突然返回 404 未找到
https://www.youtube.com/get_video_info?video_id={videoId} 正在抛出 响应状态代码并不表示成功:404(未找到)。
我有一个移动应用程序,可以在网络视图中嵌入一些 YouTube 视频。 问题是,使用 YouTube Data API v3,我得到了要显示的“可嵌入”项目的列表。但他们中的一些人说...
我可以使用 API 访问我的个人 Youtube 播放列表吗?还是需要 WebDriver?
我想从我的 YouTube 帐户的播放列表(例如:喜欢的视频)获取视频信息(例如:标题)。 是否有一些官方的 YouTube/Google API 我可以用来访问我的 YouTube 帐户并直接获取...
我正在尝试制作一个 YouTube 视频下载器,可以搜索、向您显示结果,当您单击其中一个时,就会下载视频。我使用 pytube 来连接 youtube,使用 tkinter 来连接 GUI。但是...
下面的代码是自动获取 iframe 中最新的视频。它返回一个播放列表,其中最新的视频作为第一个视频。 <p>下面的代码是自动获取 iframe 中最新的视频。它返回一个播放列表,其中最新的视频作为第一个视频。</p> <p><pre><code><iframe play src="http://www.youtube.com/embed/?listType=user_uploads&list=UnboxTherapy"& width="2000" height="1160"></iframe></code></pre></p> <p>现在我想让第一个视频自动播放。自动播放 YouTube 视频的代码:</p> <p><pre><code>?autoplay=1&cc_load_policy=1</code></pre></p> <p>如果将两者结合起来,你会得到:</p> <p><pre><code><iframe play src="http://www.youtube.com/embed/?listType=user_uploads&list=UnboxTherapy?autoplay=1&cc_load_policy=1& width="2000" height="1160"></iframe></code></pre></p> <p>当您将上面的代码放在您的网站上时,视频将加载并正常工作,但自动播放功能不起作用。它不会自动播放。</p> <p><strong>时隔2年更新</strong></p> <p>现在问这个问题两年后仍然没有答案。我认为这是不可能的。也许将来...</p> </question> <answer tick="false" vote="0"> <p>有可能</p> <p></p><div data-babel="false" data-lang="js" data-hide="false" data-console="true"> <div> <pre><code><iframe width="560" height="315" src="https://www.youtube.com/embed/videoseries ?list=PL8J9oi-nz2_XrCc7e1v8qbECudibLOvpT" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></code></pre> </div> </div> <p></p> </answer> <answer tick="false" vote="-1"> <p>根据网页资源使视频在页面加载时自动播放,您只需添加</p> <blockquote> <p>?自动播放=1</p> </blockquote> <p>到网址的末尾,这对我有用。但假设您尝试过此操作,我倾向于认为您遇到了权限错误,并且您的网络管理员或网络浏览器当前限制自动播放视频。如果您使用的是 Windows 7,请随时查看此链接,如果不是,请查看类似的链接。</p> <p><a href="http://answers.microsoft.com/en-us/windows/forum/windows_7-windows_programs/autoplay-wont-work/69ac674b-ef1b-491d-9be2-f7a1d675956c" rel="nofollow">http://answers.microsoft.com/en-us/windows/forum/windows_7-windows_programs/autoplay-wont-work/69ac674b-ef1b-491d-9be2-f7a1d675956c</a></p> </answer> </body></html>
从 pytrends.request 导入 TrendReq 导入请求 从 bs4 导入 BeautifulSoup 导入pytube # 创建 pytrends 对象 pytrends = TrendReq(hl='en-US', tz=360) # 设置您的关键字(您可以
PYTUBE 下载视频时出错 我想使用 pytube 下载 YouTube 视频,但它所做的只是说该视频无效 我需要帮助分析这个问题 这是我使用的代码 导入
如何使用 YouTube Data API v3 从频道中提取超过 20000 个视频的元数据?
我想使用 Youtube Data API v3 提取频道中所有视频的视频元数据(尤其是标题和发布日期)。目前,我只能提取最后 20000 个视频的详细信息...
我必须创建一个文本框,只允许您管视频的网址。 为了处理服务器端的验证,我使用下面的代码 $rx = '~ ^(?:https?://)? # 可选协议...