17

完全にランダムな YouTube ビデオを取得する方法が必要です。制限なし。

YouTube API を使用するにはどうすればよいですか?

**編集*ここで要求されたようにOKは、私がこれまでに試したことです:

1 - YouTube 開発サイトで API とサンプルを調べました。http://www.youtube.com/dev/正しい API やその方法を見つけることができませんでした。

2 - もちろん Google 検索 ;) http://randomyoutubevideo.net/を取得しましたが、私と YouTube の間で使用するための API のみを提供しています。<これは、これが実際に可能であるという希望を与えてくれます。

3 - YouTube アプリ ギャラリーhttp://youtube-gallery.appspot.com/をチェックして、誰かがやっているかどうかを確認しました。そしてどうやって。

また、YouTube ディスカッション ページで質問します。おそらく誰かが助けることができます。

4

9 に答える 9

4

これを行う方法はないようですが、探しているものを近似する方法があります。アイデアについては、こちらを参照してください。

これらのページの基本的なアイデアは、最新のアップロード フィードを使用するか (何かがいつアップロードされたかを気にしない場合)、単にすべての YouTube ビデオのダンプを取得して、それらから URL をランダムに選択することです。

最初のリンクで youtube API の人を引用するには:

他の人が述べたように、データダンプなどを利用できるようにします。YouTube とのやり取りはすべて、標準 API を介して行う必要があります。

動画の完全にランダムなサンプルを取得する方法を提案するには、統計のバックグラウンドが十分にあるとは言えません。11 文字の YouTube 動画 ID を生成しようとするのはおそらく間違ったアプローチだと思いますが、存在しない動画 ID が多すぎてぶつかってしまうので、最善とは思いません。 API の使用は、X% の確率で HTTP 404 応答を返す要求を行うことです。

API を使用して、「ランダム」に選択された単語またはフレーズを検索し、結果のサンプリングを行うだけで、運が良くなる可能性があります。その場合、orderby= URL パラメーターにどの値を使用するかを検討する必要があります。デフォルトの順序は「関連性」です。これにより、検索語句に最も関連性があるとアルゴリズムが判断した結果が上位に表示されます。常に最初のエントリなどを取得すると、結果が歪む可能性があります。「公開済み」で注文することもできます。これにより、ビデオの逆時系列のフィードが得られます。

乾杯 - Jeff Posnick、YouTube API チームとして randomyoutubevideo.net に関して、これはそのサイトの「概要」ページに書かれていることです:

では、YouTube 動画への完全にランダムなリンクを提供するにはどうすればよいでしょうか? YouTube プログラミング インターフェース (API) が、よりランダムなビデオを発見できる追加機能を提供していることが判明しました。時空構造の小さな操作と組み合わせて、いくつかのトリックを使用して、YouTube ビデオへの真にランダムなリンクを生成するプロセスを作成することに成功しました。

このページのランダム YouTube 機能は現在、データベースのサブセットを使用しています。時間の経過とともにこのデータベースを拡張し、需要に応じて、API 経由で無料で利用できるようにする可能性があります。

これは、API から大量の動画リストを取得し、無作為に選択した動画の DB を作成していることを意味していると理解しています。

于 2012-07-03T17:39:26.307 に答える
3

ダーティクローラーはオプションですか? 単純なランダム youtube vid リンク ジェネレーターを使用したためです。大量の動画を蓄積するためだけであり、制作のためではありませんでした。
彼が説明したように、「youtuberandomvideo.com」アプローチに(非常に)似ているようです。

import re, urllib
from random import randint

def random_str(str_size):
    res = ""
    for i in xrange(str_size):
        x = randint(0,25)
        c = chr(ord('a')+x)
        res += c
    return res

def find_watch(text,pos):
    start = text.find("watch?v=",pos)
    if (start<0):
        return None,None
    end = text.find(" ",start)
    if (end<0):
        return None,None

    if (end-start > 200): #silly heuristics, probably not a must
        return None,None

    return text[start:end-1], start


def find_instance_links():
    base_url = 'https://www.youtube.com/results?search_query='
    url = base_url+random_str(3)
    #print url

    r = urllib.urlopen(url).read()

    links = {}

    pos = 0
    while True:
        link,pos =  find_watch(r,pos)
        if link == None or pos == None:
            break
        pos += 1
        #print link
        if (";" in link):
            continue
        links[link] = 1

    items_list = links.items()

    list_size = len(items_list)
    selected = randint(list_size/2,list_size-1)
    return items_list[selected][0]


for i in xrange(1000):
    link = find_instance_links()
    print link

ご覧のとおり、かなり単純化されており、おそらく簡単に壊れてしまう可能性がありますが、IIRC を使用して数千のランダムなビデオ リンクをすばやく取得することができました。

コードの説明: (random->pseudo random ...)
1. 検索クエリのランダム生成 (ここでは 3 文字の長さ)
2. 動画リンクの下半分からランダムにリンクを選択 (動機はコマーシャルを避けることでした) )

注: コードは乱雑です。適切なコード設計やエレガントな python コードではなく、テクニックの基本的な例としてのみ役立つはずです。

于 2015-06-21T14:36:43.720 に答える
2

ランダムなビデオ ID を取得する最善の方法は、独自のデータベースを生成することです。Google の Youtube-API の VideoSearch-Request を使用します。「v=SEARCH_STRING」のような検索クエリを生成し、取得したビデオ ID をデータベースに挿入するだけです。検索文字列は、ランダムに生成された文字列である必要があります。結果を何度も繰り返すことなくリクエストからほとんどのビデオを取得するには、文字列の長さを 4 文字にする必要があることがわかりました。

データベースの準備ができていれば、そこからランダムな行を取得できます。

私は自分のウェブサイト (random-video.net)でこれを行い、数時間で 200 万を超えるエントリを獲得しました。実際の制限はありません。データベースのサイズだけです。

于 2013-10-25T22:14:19.793 に答える
2

AFAIK: 検索しv=ても意味のある効果はありません。を検索するとv=LadyGaga、Lady Gaga のビデオが見つかります。YouTube の検索アルゴリズムは、説明、タイトルなどを調べます。動画の説明に別の動画がリンクされている場合 (別名 a ?v=..)、この検索リクエストが表示される可能性が高くなります。https://developers.google.com/youtube/v3/docs/search/listも参照してください。

Google の Youtube Data API にはまだランダム ピックが実装されていません。私がしたことはクエリでした

https://www.googleapis.com/youtube/v3/search?part=id&maxResults=50&type=video&q=QUERYSTRING&key=KEY

QUERYSTRINGビデオ ID 構文のランダムな 5 文字の文字列です。結果セットに 1 ~ 50 個のビデオが含まれ、そのうちの少なくとも 1 つの id に文字列が含まれている場合、ランダムなビデオが見つかりました。通常、この方法は 1 ~ 5 回試行します。

最後のチェックが必要です。例: ランダムな文字列はydoat. VEBt0Hxp5Q8上記の URL でこれをクエリすると、一致しないid を持つ 1 つの動画のみが返されます。ビデオの説明のどこかに文字列が含まれている可能性があります。ydoatviaを検索してhttps://www.youtube.com/results?q=ydoatも、結果が見つかりません。v%3Dydoat( )で検索しv=ydoatても同じ結果になります。

編集。PHP のソース: https://github.com/phil294/-Php-Randomtube-random-YouTube-video-generator-

アントンのように、4 人のランダムなキャラクターが最適であることがわかりました。

于 2016-10-15T16:47:10.067 に答える
0

数百または数千の単語を含む単語のリストを取得します。その中からランダムに 2 語を選び、クエリとして使用します。これは、ランダム性をある程度制御したい場合にも役立ちます。たとえば、英語の単語のリストやドイツ語の単語のリストを作成できます。または、興味のあるトピックに関連する単語のみを集めた小さなリストを作成します。

于 2018-08-13T02:13:32.210 に答える