Layanan YouTube
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Layanan YouTube memungkinkan Anda menggunakan YouTube Data API
dan YouTube Live Streaming API di Apps Script. API ini memberi pengguna kemampuan untuk mengelola video, playlist, channel, dan acara live mereka.
Referensi
Untuk mengetahui informasi mendetail tentang layanan ini, lihat dokumentasi referensi berikut:
Seperti semua layanan lanjutan di Apps Script, layanan YouTube menggunakan objek, metode, dan parameter yang sama dengan API publik. Untuk mengetahui informasi selengkapnya, lihat Cara menentukan tanda tangan metode.
Untuk melaporkan masalah dan menemukan dukungan lainnya, lihat halaman dukungan yang sesuai:
Kode contoh
Kode contoh di bawah menggunakan YouTube Data API versi 3.
Cari menggunakan kata kunci
Fungsi ini menelusuri video tentang, lalu mencatat log ID dan judul video.
Perhatikan bahwa sampel ini membatasi hasil hingga 25. Untuk menampilkan lebih banyak hasil, teruskan
parameter tambahan seperti yang ditunjukkan dalam
dokumentasi referensi YouTube Data API.
Mengambil hasil upload
Fungsi ini mengambil video yang diupload pengguna. Hal ini dilakukan dengan menggunakan
langkah-langkah berikut:
- Mengambil channel pengguna
- Mengambil playlist
uploads
pengguna
- Melakukan iterasi melalui playlist ini dan mencatat ID dan judul video
- Jika ada halaman hasil berikutnya, ambil halaman tersebut, lalu kembali ke langkah 3
Subscribe ke channel
Contoh ini membuat pengguna berlangganan channel Google Developers di YouTube.
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-08-31 UTC.
[null,null,["Terakhir diperbarui pada 2025-08-31 UTC."],[[["\u003cp\u003eThe YouTube service in Apps Script allows you to manage videos, playlists, channels, and live events using the YouTube Data API and YouTube Live Streaming API.\u003c/p\u003e\n"],["\u003cp\u003eThis is an advanced service that needs to be enabled before use within your Apps Script project.\u003c/p\u003e\n"],["\u003cp\u003eSample code is provided to demonstrate searching for videos, retrieving user uploads, and subscribing to channels using the API.\u003c/p\u003e\n"],["\u003cp\u003eRefer to the YouTube Data API and YouTube Live Streaming API reference documentation for detailed information and further functionalities.\u003c/p\u003e\n"]]],[],null,["# YouTube Service\n\nThe YouTube service allows you to use the [YouTube Data API](/youtube/v3)\nand [YouTube Live Streaming API](/youtube/v3/live) in Apps Script. This API\ngives users the ability to manage their videos, playlists, channels, and live\nevents.\n| **Note:** This is an advanced service that must be [enabled before use](/apps-script/guides/services/advanced).\n\nReference\n---------\n\nFor detailed information on this service, see the following reference\ndocumentation:\n\n- [YouTube Data API](/youtube/v3/docs)\n- [YouTube Live Streaming API](/youtube/v3/live/docs)\n\nLike all advanced services in Apps Script, the YouTube service uses the same\nobjects, methods, and parameters as the public API. For more information, see [How method signatures are determined](/apps-script/guides/services/advanced#how_method_signatures_are_determined).\n\nTo report issues and find other support, see the corresponding support pages:\n\n- [YouTube Data API support](/youtube/v3/support)\n- [YouTube Live Streaming API support](/youtube/v3/live/support)\n\nSample code\n-----------\n\nThe sample code below uses [version 3](/youtube/v3/docs) of the YouTube Data\nAPI.\n\n### Search by keyword\n\nThis function searches for videos about dogs, then logs the video IDs and title.\nNote that this sample limits the results to 25. To return more results, pass\nadditional parameters as shown in the\n[YouTube Data API reference documentation](/youtube/v3/docs/search/list). \nadvanced/youtube.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/advanced/youtube.gs) \n\n```javascript\n/**\n * Searches for videos about dogs, then logs the video IDs and title.\n * Note that this sample limits the results to 25. To return more\n * results, pass additional parameters as shown in the YouTube Data API docs.\n * @see https://developers.google.com/youtube/v3/docs/search/list\n */\nfunction searchByKeyword() {\n try {\n const results = YouTube.Search.list('id,snippet', {\n q: 'dogs',\n maxResults: 25\n });\n if (results === null) {\n console.log('Unable to search videos');\n return;\n }\n results.items.forEach((item)=\u003e {\n console.log('[%s] Title: %s', item.id.videoId, item.snippet.title);\n });\n } catch (err) {\n // TODO (developer) - Handle exceptions from Youtube API\n console.log('Failed with an error %s', err.message);\n }\n}\n```\n\n### Retrieve uploads\n\nThis function retrieves the user's uploaded videos. It does this using the\nfollowing steps:\n\n1. Fetches the user's channel\n2. Fetches the user's `uploads` playlist\n3. Iterates through this playlist and logs the video IDs and titles\n4. If there is a next page of results, fetches it, then returns to step 3\n\nadvanced/youtube.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/advanced/youtube.gs) \n\n```javascript\n/**\n * This function retrieves the user's uploaded videos by:\n * 1. Fetching the user's channel's.\n * 2. Fetching the user's \"uploads\" playlist.\n * 3. Iterating through this playlist and logs the video IDs and titles.\n * 4. If there is a next page of resuts, fetching it and returns to step 3.\n */\nfunction retrieveMyUploads() {\n try {\n // @see https://developers.google.com/youtube/v3/docs/channels/list\n const results = YouTube.Channels.list('contentDetails', {\n mine: true\n });\n if (!results || results.items.length === 0) {\n console.log('No Channels found.');\n return;\n }\n for (let i = 0; i \u003c results.items.length; i++) {\n const item = results.items[i];\n /** Get the channel ID - it's nested in contentDetails, as described in the\n * Channel resource: https://developers.google.com/youtube/v3/docs/channels.\n */\n const playlistId = item.contentDetails.relatedPlaylists.uploads;\n let nextPageToken = null;\n do {\n // @see: https://developers.google.com/youtube/v3/docs/playlistItems/list\n const playlistResponse = YouTube.PlaylistItems.list('snippet', {\n playlistId: playlistId,\n maxResults: 25,\n pageToken: nextPageToken\n });\n if (!playlistResponse || playlistResponse.items.length === 0) {\n console.log('No Playlist found.');\n break;\n }\n for (let j = 0; j \u003c playlistResponse.items.length; j++) {\n const playlistItem = playlistResponse.items[j];\n console.log('[%s] Title: %s',\n playlistItem.snippet.resourceId.videoId,\n playlistItem.snippet.title);\n }\n nextPageToken = playlistResponse.nextPageToken;\n } while (nextPageToken);\n }\n } catch (err) {\n // TODO (developer) - Handle exception\n console.log('Failed with err %s', err.message);\n }\n}\n```\n\n### Subscribe to channel\n\nThis sample subscribes the user to the Google Developers channel on YouTube. \nadvanced/youtube.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/advanced/youtube.gs) \n\n```javascript\n/**\n * This sample subscribes the user to the Google Developers channel on YouTube.\n * @see https://developers.google.com/youtube/v3/docs/subscriptions/insert\n */\nfunction addSubscription() {\n // Replace this channel ID with the channel ID you want to subscribe to\n const channelId = 'UC_x5XG1OV2P6uZZ5FSM9Ttw';\n const resource = {\n snippet: {\n resourceId: {\n kind: 'youtube#channel',\n channelId: channelId\n }\n }\n };\n\n try {\n const response = YouTube.Subscriptions.insert(resource, 'snippet');\n console.log('Added subscription for channel title : %s', response.snippet.title);\n } catch (e) {\n if (e.message.match('subscriptionDuplicate')) {\n console.log('Cannot subscribe; already subscribed to channel: ' +\n channelId);\n } else {\n // TODO (developer) - Handle exception\n console.log('Error adding subscription: ' + e.message);\n }\n }\n}\n```"]]