API YouTube untuk mengambil semua video di saluran

197

Kami membutuhkan daftar video berdasarkan nama saluran YouTube (menggunakan API).

Kami bisa mendapatkan daftar saluran (hanya nama saluran) dengan menggunakan API di bawah ini:

https://gdata.youtube.com/feeds/api/channels?v=2&q=tendulkar

Di bawah ini adalah tautan langsung saluran

https://www.youtube.com/channel/UCqAEtEr0A0Eo2IVcuWBfB9g

Atau

WWW.YouTube.com/channel/HC-8jgBP-4rlI

Sekarang, kita membutuhkan video saluran >> UCqAEtEr0A0Eo2IVcuWBfB9g atau HC-8jgBP-4rlI.

Kami sudah mencoba

https://gdata.youtube.com/feeds/api/videos?v=2&uploader=partner&User=UC7Xayrf2k0NZiz3S04WuDNQ https://gdata.youtube.com/feeds/api/videos?v=2&uploader=partner&q=UC7Xayrf200Z0Z0Q0

Tapi, itu tidak membantu.

Kami membutuhkan semua video yang diposting di saluran. Video yang diunggah ke saluran dapat dari beberapa pengguna sehingga saya tidak berpikir memberikan parameter pengguna akan membantu ...

Rajendra Dewani
sumber
dapatkah saya mendapatkan akses ke file video saya sendiri. untuk mengunduh konten saya sendiri pada dasarnya ketika masuk melalui API !!!
filthy_wizard

Jawaban:

215

Anda perlu melihat API Data YouTube . Anda akan menemukan dokumentasi di sana tentang bagaimana API dapat diakses. Anda juga dapat menemukan perpustakaan klien .

Anda juga bisa membuat permintaan sendiri. Berikut adalah contoh URL yang mengambil video terbaru dari saluran:

https://www.googleapis.com/youtube/v3/search?key={your_key_here}&channelId={channel_id_here}&part=snippet,id&order=date&maxResults=20

Setelah itu Anda akan menerima JSONid dan detail video, dan Anda dapat membuat URL video Anda seperti ini:

http://www.youtube.com/watch?v={video_id_here}
akshay
sumber
29
Ini hanya akan mengembalikan maxResults=20video pertama (hingga 50), tetapi tidak seluruh katalog saluran. Jika Anda ingin hasil lebih banyak, gunakan pageToken seperti yang dijelaskan di sini .
Fábio Perez
2
Romulus Urakagi Ts'ai: saat meminta video yang Anda berikan channelId, itu adalah filter untuk saluran.
akshay
11
Layak dicatat Anda hanya bisa mendapatkan hingga 500 video dari saluran menggunakan token halaman berikutnya.
Tony Paternite
3
@TonyPaternite Bagaimana saya mendapatkan lebih dari 500 video. Saat ini saya sedang menghadapi masalah ini.
Raja
3
Masalahnya dijelaskan dengan baik di sini. code.google.com/p/gdata-issues/issues/detail?id=4282 Mencoba dengan rentang tanggal yang berbeda adalah salah satu cara untuk mendapatkan lebih banyak video.
Raja
119

Pertama, Anda perlu mendapatkan ID daftar putar yang mewakili unggahan dari pengguna / saluran:

https://developers.google.com/youtube/v3/docs/channels/list#try-it

Anda dapat menentukan nama pengguna dengan forUsername={username}param, atau menentukan mine=trueuntuk mendapatkan milik Anda sendiri (Anda perlu mengautentikasi terlebih dahulu). Sertakan part=contentDetailsuntuk melihat daftar putar.

GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername=jambrose42&key={YOUR_API_KEY}

Dalam hasilnya "relatedPlaylists"akan termasuk "likes"dan "uploads"daftar putar. Ambil "upload"ID daftar putar itu. Perhatikan juga apakah "id"itu channelID Anda untuk referensi di masa mendatang.

Selanjutnya, dapatkan daftar video dalam daftar putar itu:

https://developers.google.com/youtube/v3/docs/playlistItems/list#try-it

Cukup masukkan playlistId!

GET https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails&maxResults=50&playlistId=UUpRmvjdu3ixew5ahydZ67uA&key={YOUR_API_KEY}

jambrose
sumber
1
Tidak semua orang memiliki nama pengguna youtube di dunia baru ini. Beberapa dari mereka hanya memiliki nomor id pengguna google +, yang tidak berfungsi sebagai pengganti nama pengguna youtube
kristopolous
1
@kristopolous Setiap saluran YouTube memiliki ID saluran. Jika Anda pergi ke halaman YouTube melalui Google plus, ia menggunakan id pengguna Google plus sebagai tautan ke saluran. Jika Anda pergi ke saluran dari video YouTube, ia menggunakan properti ID saluran YouTube sebagai gantinya.
Ignat
19
Ini sempurna. Terutama karena hanya menghabiskan 2 kuota poin daripada 100 (yang akan menghabiskan panggilan pencarian ).
JP de la Torre
1
kadang-kadang itu ( developers.google.com/youtube/v3/docs/playlistItems/list#try-it ) berfungsi, kadang-kadang melempar 404 untuk uploadId yang sama, tidak tahu apa yang terjadi.
ishandutta2007
1
@ jambrose di playlistItems endpoint bagaimana menggunakan beberapa parameter rentang tanggal seperti publishAfter / publishBefore. Saya mencobanya, tidak berfungsi. Jadi bagaimana saya mengambil semua video saluran.
Harsh sachdev
79

Berikut adalah video dari Google Developers yang menunjukkan cara membuat daftar semua video dalam saluran di v3YouTube API.

Ada dua langkah:

  1. Saluran Kueri untuk mendapatkan ID "unggahan". misalnyahttps://www.googleapis.com/youtube/v3/channels?id={channel Id}&key={API key}&part=contentDetails

  2. Gunakan Id "unggah" ini untuk menanyakan PlaylistItems untuk mendapatkan daftar video. misalnyahttps://www.googleapis.com/youtube/v3/playlistItems?playlistId={"uploads" Id}&key={API key}&part=snippet&maxResults=50

virtualmic
sumber
1
Bisakah "mengunggah" Id berubah untuk saluran yang diberikan?
ishandutta2007
tampaknya unggahan sama dengan channelId, tetapi API sangat tidak konsisten, dapatkah beberapa orang menjawab stackoverflow.com/questions/43568521/…
ishandutta2007
1
@ ishandutta2007 tidak ada id unggahan yang berbeda dari id saluran.
vicke4
@ virtualmic @ Peter Solusi Sempurna Kalian, Terima kasih
Aaska Patel
itu bekerja dengan baik. tetapi saya memiliki beberapa id saluran, jadi bagaimana saya dapat mengirimnya ke api, dapatkah saya menggunakan id saluran yang dipisah koma
Onkar Musale
31

Untuk mendapatkan daftar saluran:

Dapatkan daftar Saluran oleh forUserName :

https://www.googleapis.com/youtube/v3/channels?part=snippet,contentDetails,statistics&forUsername=Apple&key=

Dapatkan daftar saluran berdasarkan id saluran :

https://www.googleapis.com/youtube/v3/channels/?part=snippet,contentDetails,statistics&id=UCE_M8A5yxnLfW0KghEeajjw&key=

Dapatkan bagian Saluran:

https://www.googleapis.com/youtube/v3/channelSections?part=snippet,contentDetails&channelId=UCE_M8A5yxnLfW0KghEeajjw&key=

Untuk mendapatkan Daftar Putar:

Dapatkan Daftar Putar berdasarkan ID Saluran :

https://www.googleapis.com/youtube/v3/playlists?part=snippet,contentDetails&channelId=UCq-Fj5jknLsUf-MWSy4_brA&maxResults=50&key=

Dapatkan Daftar Putar menurut ID Saluran dengan pageToken :

https://www.googleapis.com/youtube/v3/playlists?part=snippet,contentDetails&channelId=UCq-Fj5jknLsUf-MWSy4_brA&maxResults=50&key= & pageToken = CDIQAA

Untuk mendapatkan PlaylistItems:

Dapatkan daftar PlaylistItems oleh PlayListId :

https://www.googleapis.com/youtube/v3/playlistItems?part=snippet,contentDetails&maxResults=25&playlistId=PLHFlHpPjgk70Yv3kxQvkDEO5n5tMQia5I&key=

Untuk mendapatkan video:

Dapatkan daftar video berdasarkan id video :

https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails,statistics&id=YxLCwfA1cLw&key=

Dapatkan daftar video dengan beberapa video id :

https://www.googleapis.com/youtube/v3/videos?part=snippet,contentDetails,statistics&id=YxLCwfA1cLw,Qgy6LaO3SB0,7yPJXGO2Dcw&key=

Dapatkan daftar komentar

Dapatkan daftar Komentar dengan ID video :

https://www.googleapis.com/youtube/v3/commentThreads?part=snippet,replies&videoId=el **** kQak & key = A ********** k

Dapatkan daftar Komentar berdasarkan ID saluran :

https://www.googleapis.com/youtube/v3/commentThreads?part=snippet,replies&channelId=U ***** T & kunci = AI ******** k

Dapatkan daftar Komentar oleh allThreadsRelatedToChannelId :

https://www.googleapis.com/youtube/v3/commentThreads?part=snippet,replies&allThreadsRelatedToChannelId=UC ***** ntcQ & key = AI ***** k

Di sini semua api adalah Dapatkan pendekatan.

Berdasarkan id saluran kami tidak bisa mendapatkan semua video secara langsung, itulah poin penting di sini.

Untuk integrasi https://developers.google.com/youtube/v3/quickstart/ios?ver=swift

iOS
sumber
Bagaimana saya dapat mengirim beberapa id saluran ke api, dapatkah saya menggunakan id saluran yang dipisah koma
Onkar Musale
Bagaimana saya bisa mendapatkan 10/50/100 saluran youtube teratas menggunakan api?
Rajeshwar
10

Di bawah ini adalah alternatif Python yang tidak memerlukan paket khusus. Dengan memberikan id saluran, ia mengembalikan daftar tautan video untuk saluran itu. Harap perhatikan bahwa Anda memerlukan Kunci API agar bisa berfungsi.

import urllib
import json

def get_all_video_in_channel(channel_id):
    api_key = YOUR API KEY

    base_video_url = 'https://www.youtube.com/watch?v='
    base_search_url = 'https://www.googleapis.com/youtube/v3/search?'

    first_url = base_search_url+'key={}&channelId={}&part=snippet,id&order=date&maxResults=25'.format(api_key, channel_id)

    video_links = []
    url = first_url
    while True:
        inp = urllib.urlopen(url)
        resp = json.load(inp)

        for i in resp['items']:
            if i['id']['kind'] == "youtube#video":
                video_links.append(base_video_url + i['id']['videoId'])

        try:
            next_page_token = resp['nextPageToken']
            url = first_url + '&pageToken={}'.format(next_page_token)
        except:
            break
    return video_links
Stian
sumber
Bagaimana cara kerjanya? Saya menyisipkan KUNCI API menggunakan tanda kutip tunggal '' ke dalam variabel api_key, lalu saya memanggil fungsi yang lewat di id saluran, kemudian menjalankan program python, tetapi tidak ada yang terjadi.
Joffrey Baratheon
@ JoffreyBaratheon, fungsi mengembalikan array, Anda harus memuatnya ke variabel. Sebagai contoh: video_list = get_all_video_in_channel("ABC123EFG456")maka Anda dapat mencetaknya untuk melihat array menggunakanprint(video_list)
phapha pha
7

Berikut adalah kode yang akan mengembalikan semua id video di bawah saluran Anda

<?php 
    $baseUrl = 'https://www.googleapis.com/youtube/v3/';
    // https://developers.google.com/youtube/v3/getting-started
    $apiKey = 'API_KEY';
    // If you don't know the channel ID see below
    $channelId = 'CHANNEL_ID';

    $params = [
        'id'=> $channelId,
        'part'=> 'contentDetails',
        'key'=> $apiKey
    ];
    $url = $baseUrl . 'channels?' . http_build_query($params);
    $json = json_decode(file_get_contents($url), true);

    $playlist = $json['items'][0]['contentDetails']['relatedPlaylists']['uploads'];

    $params = [
        'part'=> 'snippet',
        'playlistId' => $playlist,
        'maxResults'=> '50',
        'key'=> $apiKey
    ];
    $url = $baseUrl . 'playlistItems?' . http_build_query($params);
    $json = json_decode(file_get_contents($url), true);

    $videos = [];
    foreach($json['items'] as $video)
        $videos[] = $video['snippet']['resourceId']['videoId'];

    while(isset($json['nextPageToken'])){
        $nextUrl = $url . '&pageToken=' . $json['nextPageToken'];
        $json = json_decode(file_get_contents($nextUrl), true);
        foreach($json['items'] as $video)
            $videos[] = $video['snippet']['resourceId']['videoId'];
    }
    print_r($videos);

Catatan : Anda bisa mendapatkan id saluran di https://www.youtube.com/account_advanced setelah masuk.

Mihir Bhatt
sumber
1
Yang ini jelas merupakan solusi bersih yang berfungsi. Saat ini menggunakan dalam produksi.
Codex73
6

Berkat referensi yang dibagikan di sini dan di tempat lain, saya telah membuat skrip / alat online yang dapat digunakan seseorang untuk mendapatkan semua video saluran.

Ini menggabungkan panggilan API untuk youtube.channels.list, playlistItems,videos . Ini menggunakan fungsi rekursif untuk membuat panggilan balik asinkron menjalankan iterasi berikutnya setelah mendapatkan respons yang valid.

Ini juga berfungsi untuk membatasi jumlah permintaan aktual yang dibuat sekaligus, sehingga Anda tetap aman dari pelanggaran aturan API YouTube. Berbagi cuplikan singkat dan lalu tautan ke kode lengkap. Saya mendapatkan sekitar 50 hasil maksimal per batasan panggilan dengan menggunakan nilai nextPageToken yang muncul sebagai respons untuk mengambil 50 hasil berikutnya dan seterusnya.

function getVideos(nextPageToken, vidsDone, params) {
    $.getJSON("https://www.googleapis.com/youtube/v3/playlistItems", {
        key: params.accessKey,
        part: "snippet",
        maxResults: 50,
        playlistId: params.playlistId,
        fields: "items(snippet(publishedAt, resourceId/videoId, title)), nextPageToken",
        pageToken: ( nextPageToken || '')
        },
        function(data) {
            // commands to process JSON variable, extract the 50 videos info

            if ( vidsDone < params.vidslimit) {

                // Recursive: the function is calling itself if
                // all videos haven't been loaded yet
                getVideos( data.nextPageToken, vidsDone, params);

            }
             else {
                 // Closing actions to do once we have listed the videos needed.
             }
    });
}

Ini mendapat daftar dasar video, termasuk id, judul, tanggal penerbitan, dan sejenisnya. Tetapi untuk mendapatkan lebih detail dari setiap video seperti jumlah tayangan dan suka, kita harus membuat panggilan API videos.

// Looping through an array of video id's
function fetchViddetails(i) {
    $.getJSON("https://www.googleapis.com/youtube/v3/videos", {
        key: document.getElementById("accesskey").value,
        part: "snippet,statistics",
        id: vidsList[i]
        }, function(data) {

            // Commands to process JSON variable, extract the video
            // information and push it to a global array
            if (i < vidsList.length - 1) {
                fetchViddetails(i+1) // Recursive: calls itself if the
                                     //            list isn't over.
            }
});

Lihat kode lengkapnya di sini , dan versi live di sini . (Edit: tautan github tetap)
Sunting: Ketergantungan: JQuery, Papa.parse

Nikhil VJ
sumber
1
Apakah Anda yakin ini berhasil? Halaman GitHub hilang dan kemudian ketika saya memasukkan API Key dan id saluran ke bidang, saya mendapatkan kesalahan.
Joffrey Baratheon
@JoffreyBaratheon terima kasih telah menunjukkan tautan github yang rusak. Saya hanya menjalankannya .. itu berhasil. Mendapatkan id daftar putar itu sulit .. tolong
Nikhil VJ
pekerjaan yang baik. berfungsi sangat baik dengan tautan github yang diperbarui. Anda memerlukan jquery dan papaparse.min.js
Bludau Media
@thE_iNviNciblE terima kasih telah membahasnya. menyebutkannya.
Nikhil VJ
@ nikhil-vj itu tidak bisa digunakan untuk szenario dunia nyata, Anda tidak harus memberikan Browser Klien youtube-API API. Tapi untuk pendidikan pemrograman pekerjaannya cukup bagus :-)
Bludau Media
4

Karena semua orang yang menjawab pertanyaan ini memiliki masalah karena batas 500 video, inilah solusi alternatif menggunakan youtube_dl di Python 3 . Juga, tidak ada kunci API yang diperlukan .

  1. Pasang youtube_dl: sudo pip3 install youtube-dl
  2. Cari tahu id saluran saluran target Anda . ID akan mulai dengan UC. Ganti C untuk Saluran dengan U untuk Unggah (yaitu UU ...), ini adalah daftar putar unggahan .
  3. Gunakan fitur pengunduh daftar putar dari youtube-dl. Idealnya Anda TIDAK ingin mengunduh setiap video dalam daftar putar yang merupakan default, tetapi hanya metadata.

Contoh (peringatan - membutuhkan waktu puluhan menit):

import youtube_dl, pickle

             # UCVTyTA7-g9nopHeHbeuvpRA is the channel id (1517+ videos)
PLAYLIST_ID = 'UUVTyTA7-g9nopHeHbeuvpRA'  # Late Night with Seth Meyers

with youtube_dl.YoutubeDL({'ignoreerrors': True}) as ydl:

    playd = ydl.extract_info(PLAYLIST_ID, download=False)

    with open('playlist.pickle', 'wb') as f:
        pickle.dump(playd, f, pickle.HIGHEST_PROTOCOL)

    vids = [vid for vid in playd['entries'] if 'A Closer Look' in vid['title']]
    print(sum('Trump' in vid['title'] for vid in vids), '/', len(vids))
xjcl
sumber
1
Saya pikir ini adalah jawaban terbaik karena tidak memerlukan kunci API. Untuk membuatnya lebih otomatis, Anda dapat menggunakan @for /f "usebackq tokens=2 delims=: " %a in (`dl-list.py^|findstr information`) do @echo https://www.youtube.com/watch?v=%a. Ini akan mencetak semua URL video. PLAYLIST_IDdapat berupa daftar putar atau ID saluran.
cdlvcdlv
Anda dapat menyimpulkannya tetapi saya lupa mengatakan bahwa saya menyimpan kode sebagai dl-list.py.
cdlvcdlv
2

Menggunakan API versi 2, yang sudah tidak digunakan lagi, URL untuk diunggah (saluran UCqAEtEr0A0Eo2IVcuWBfB9g) adalah:

https://gdata.youtube.com/feeds/users/UCqAEtEr0A0Eo2IVcuWBfB9g/uploads

Ada versi API 3.

Als
sumber
Untuk UCqAEtEr0A0Eo2IVcuWBfB9g berfungsi, saya pikir ini karena diunggah oleh satu pengguna. Bagaimana dengan HC-8jgBP-4rlI
Rajendra Dewani
Tidak memeriksa pesan saya sampai hari ini. Kamu benar. Hanya untuk saluran pengguna.
Als
9
Tautannya sudah mati.
user3078414
2

Baru-baru ini saya harus mengambil semua video dari saluran, dan menurut dokumentasi pengembang YouTube: https://developers.google.com/youtube/v3/docs/playlistItems/list

function playlistItemsListByPlaylistId($service, $part, $params) {
    $params = array_filter($params);
    $response = $service->playlistItems->listPlaylistItems(
        $part,
        $params
    );

    print_r($response);
}

playlistItemsListByPlaylistId($service,
    'snippet,contentDetails',
    array('maxResults' => 25, 'playlistId' => 'id of "uploads" playlist'));

Di mana objek $serviceAnda Google_Service_YouTube.

Jadi, Anda harus mengambil informasi dari saluran untuk mengambil daftar putar "unggahan" yang sebenarnya memiliki semua video yang diunggah oleh saluran: https://developers.google.com/youtube/v3/docs/channels/list

Jika baru dengan API ini, saya sangat menyarankan untuk mengubah sampel kode dari cuplikan default ke sampel lengkap.

Jadi kode dasar untuk mengambil semua video dari suatu saluran dapat berupa:

class YouTube
{
    const       DEV_KEY = 'YOUR_DEVELOPPER_KEY';
    private     $client;
    private     $youtube;
    private     $lastChannel;

    public function __construct()
    {
        $this->client = new Google_Client();
        $this->client->setDeveloperKey(self::DEV_KEY);
        $this->youtube = new Google_Service_YouTube($this->client);
        $this->lastChannel = false;
    }

    public function getChannelInfoFromName($channel_name)
    {
        if ($this->lastChannel && $this->lastChannel['modelData']['items'][0]['snippet']['title'] == $channel_name)
        {
            return $this->lastChannel;
        }
        $this->lastChannel = $this->youtube->channels->listChannels('snippet, contentDetails, statistics', array(
            'forUsername' => $channel_name,
        ));
        return ($this->lastChannel);
    }

    public function getVideosFromChannelName($channel_name, $max_result = 5)
    {
        $this->getChannelInfoFromName($channel_name);
        $params = [
            'playlistId' => $this->lastChannel['modelData']['items'][0]['contentDetails']['relatedPlaylists']['uploads'],
            'maxResults'=> $max_result,
        ];
        return ($this->youtube->playlistItems->listPlaylistItems('snippet,contentDetails', $params));
    }
}

$yt = new YouTube();
echo '<pre>' . print_r($yt->getVideosFromChannelName('CHANNEL_NAME'), true) . '</pre>';
Glastis
sumber
Apakah ini mendapatkan semua video dengan judul, URL video, gambar yang mengidentifikasi video, jumlah suka / komentar? Beberapa info tentang cara penerbitan ini akan sangat membantu. Terima kasih.
Khom Nazid
1

Contoh solusi dalam Python. Bantuan diambil dari video ini: video Seperti banyak jawaban lain, id unggah harus diambil dari id saluran terlebih dahulu.

impor urllib.request
impor json

key = "YOUR_YOUTUBE_API_v3_BROWSER_KEY"

# Daftar saluran: sebutkan jika Anda menempelkan id saluran atau nama pengguna - "id" atau "forUsername"
ytids = [["bbcnews", "forUsername"], ["UCjq4pjKj9X4W9i7UnYShpVg", "id"]]

newstitles = []
untuk ytid, ytparam di ytids:
    urld = "https://www.googleapis.com/youtube/v3/channels?part=contentDetails&"+ytparam+"="+ytid+"&key="+key
    dengan urllib.request.urlopen (urld) sebagai url:
        datad = json.loads (url.read ())
    uploadsdet = datad ['items']
    #get unggah id dari id saluran
    uploadid = uploadsdet [0] ['contentDetails'] ['relatedPlaylists'] ['uploads']

    Daftar #retrieve
    urld = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet%2CcontentDetails&maxResults=50&playlistId="+uploadid+"&key="+key
    dengan urllib.request.urlopen (urld) sebagai url:
        datad = json.loads (url.read ())

    untuk data dalam datad ['items']:
        ntitle = data ['snippet'] ['title']
        nlink = data ['contentDetails'] ['videoId']
        newstitles.append ([nlink, ntitle])

untuk tautan, judul di film baru:
    cetak (tautan, judul)
Ananth
sumber
-2

Tautan yang diunduh dari saluran youtube, jangan struktur direktori pemelihara. Jadi, saya menulis kode untuk mewujudkannya. Gunakan ini setelah Anda mengunduh video dari cara yang diterima di atas. `

def play_vid(channel):
    yset = dict()
    temp = []
    link = channel + '/playlists'
    first = urlopen(link)
    bs = BeautifulSoup(first.read(), 'html.parser')
    for i in bs.find_all('a', {'class':'yt-uix-sessionlink yt-uix-tile-link spf-link yt-ui-ellipsis yt-ui-ellipsis-2'}):
        print('Creating list for the playlist: ', i.get_text())
        link = 'https://www.youtube.com'+i.get('href')
#         print(link)
        first = urlopen(link)
        bsp = BeautifulSoup(first.read(), 'html.parser')
        res=bsp.find_all('a',{'class':'pl-video-title-link'})
        for l in res:
            temp.append(l.get_text().replace(" ", "").strip())
        yset[i.get_text()]=temp
        temp=[]
    print("Done!!")
    return yset



checking = play_vid('https://www.youtube.com/user/NinjaTraderLLC')


'''for me /media/shivam/BIG/ninja is the folder where i've previously downloaded all the videos from channel'''    
downloaded = [file for file in os.listdir('/media/shivam/BIG/ninja/') if os.path.isfile('/media/shivam/BIG/ninja/'+file)]

hash_table = dict()
for i in downloaded:
    hash_table[i.replace(" ", "")] = i

for i in scraped.keys():

    if os.path.isdir('/media/shivam/BIG/ninja/'+ i):
        pass
    else:
        os.mkdir('/media/shivam/BIG/ninja/'+ i)
    minn = 1000
    mov = ""

    for j in scraped[i]:
        for k in hash_table.keys():
            if nltk.edit_distance(j, k) < minn:
                minn = nltk.edit_distance(j, k)
                mov = k
        minn = 1000
        print("Moving ",mov, "for  channel: ",j)
        shutil.copy('/media/shivam/BIG/ninja/'+ hash_table[mov], '/media/shivam/BIG/ninja/'+ i +'/'+hash_table[mov])

`

shivam13juna
sumber
-6

Sebagai status dokumentasi ( tautan ), Anda dapat menggunakan jenis sumber daya saluran dan Daftar operasi untuk mendapatkan semua video dalam suatu saluran. Operasi ini harus dilakukan menggunakan argumen 'id saluran'.

Singh
sumber
22
Mudah untuk mengatakannya, tetapi mengapa Anda tidak memberikan jawaban Anda dengan contoh yang baik dan berfungsi ???
akshay