有没有办法根据URL查看视频链接是否会播放?

Is there a way based on the URL to see if a video link would play?

提问人:3ll3 提问时间:8/15/2023 更新时间:8/15/2023 访问量:57

问:

我有一千个 YouTube 视频要查看,其中一些不起作用。我正在尝试找到一种方法来更快地检查这些。我遇到了这个剧本,我认为它效果很好。但是,我遇到的视频链接已损坏,但仍返回 302。

function getStatusCode(url) {
  var url_trimmed = url.trim();
  // Check if script cache has a cached status code for the given url
  var cache = CacheService.getScriptCache();
  var result = cache.get(url_trimmed);
  
  // If value is not in cache/or cache is expired fetch a new request to the url
  if (!result) {

    var options = {
      'muteHttpExceptions': true,
      'followRedirects': false
    };
    var response = UrlFetchApp.fetch(url_trimmed, options);
    var responseCode = response.getResponseCode();

    // Store the response code for the url in script cache for subsequent retrievals
    cache.put(url_trimmed, responseCode, 21600); // cache maximum storage duration is 6 hours
    result = responseCode;
  }

  return result;
}

以下是一些无法播放的视频示例 https://www.youtube.com/watch?v=yovjv3nL4D8 https://www.youtube.com/watch?v=zBhtOnFURPY

有没有办法根据 URL 确定视频是否可以播放?

google-apps-script google-sheets youtube http-status-code-302 断开的链接

评论


答:

0赞 z.. 8/15/2023 #1

可以使用 IMPORTDATA 函数。

=LET(url,A1,
     data,TOCOL(IMPORTDATA(url)),
     IFERROR(REGEXREPLACE(FILTER(data,REGEXMATCH(data,"reason:")),"reason:|""",)))

如果视频可播放,则此公式返回空白单元格,如果视频无法播放,则返回错误消息。错误消息需要 1 或 2 秒才能加载。