Trang này trình bày các yêu cầu mẫu đối với YouTube Data API. Bạn sử dụng YouTube Data API để truy xuất và thao tác với các tài nguyên trên YouTube như video, kênh và danh sách phát. Mỗi mẫu đều liên kết đến và điền sẵn thông tin vào Google APIs Explorer để bạn có thể thực thi mẫu và xem phản hồi.
Để biết thông tin về cách tải nội dung lên bằng YouTube Data API, hãy xem bài viết Tải lên có thể tiếp tục.
Tổng quan
Để cho rõ ràng khi trình bày, các mẫu trên trang này cho thấy các thành phần đặc biệt của từng Yêu cầu API và viết tắt URL cơ sở cho máy chủ lưu trữ xử lý các Yêu cầu API của Data API (https://www.googleapis.com/youtube/v3). Để đưa ra yêu cầu bên ngoài bối cảnh của các mẫu, bạn cần đưa URL đầy đủ.
Ví dụ: sau đây là một yêu cầu mẫu như xuất hiện trên trang này:
GET {base-URL}/channels?part=contentDetails &mine=true
URL đầy đủ cho yêu cầu này là:
GET https://www.googleapis.com/youtube/v3/channels?part=contentDetails &mine=true
Một số yêu cầu truy xuất dữ liệu mà chỉ chủ sở hữu kênh YouTube mới có thể truy cập, chẳng hạn như danh sách người đăng ký. Các yêu cầu này yêu cầu chủ sở hữu kênh cấp cho Google APIs Explorer quyền thực hiện các yêu cầu API của YouTube Data API thay mặt họ. (Hãy xem bài viết Triển khai quy trình xác thực OAuth 2.0 để biết thông tin chi tiết về việc cấp quyền truy cập vào dữ liệu kênh riêng tư.) Sau khi liên kết đến APIs Explorer, hãy nhấp vào nút Authorize requests using OAuth 2.0 (Uỷ quyền cho các yêu cầu bằng OAuth 2.0). Bước này cho phép APIs Explorer đưa ra yêu cầu thay mặt chủ sở hữu. Bạn cũng chọn phạm vi uỷ quyền, chỉ định các loại yêu cầu mà APIs Explorer có thể thực hiện.
Phản hồi cho mỗi yêu cầu là biểu diễn JSON của một tài nguyên trên YouTube. Tham số part trong yêu cầu chỉ định những phần của tài nguyên được đưa vào phản hồi. Tham số này xác định một hoặc nhiều thuộc tính tài nguyên cấp cao nhất (không lồng nhau) cần được đưa vào phản hồi. Ví dụ: một số phần của tài nguyên video là:
- đoạn trích
- contentDetails
- cầu thủ
- thống kê
- trạng thái
Tất cả các phần này đều là đối tượng chứa các thuộc tính lồng nhau và bạn có thể coi các đối tượng này là nhóm trường siêu dữ liệu mà máy chủ API có thể (hoặc không thể) truy xuất. Do đó, tham số part yêu cầu bạn chọn các thành phần tài nguyên mà ứng dụng của bạn thực sự sử dụng.Hãy xem bài viết Bắt đầu sử dụng YouTube Data API để biết thêm thông tin.
Truy xuất thông tin kênh
Yêu cầu này sử dụng phương thức channels.list để truy xuất thông tin chi tiết về các kênh thuộc về người dùng đã xác thực.
GET {base_URL}/channels?part=contentDetails &mine=true
Phản hồi cho yêu cầu này bao gồm mã nhận dạng kênh và contentDetails cho kênh của người dùng đã xác thực. contentDetails bao gồm một số danh sách phát do hệ thống tạo liên kết với kênh. Nhiều yêu cầu tiếp theo yêu cầu mã nhận dạng kênh hoặc một trong các mã nhận dạng danh sách phát, vì vậy, bạn cần ghi lại các mã này.
{
"id": {CHANNEL_ID},
"kind": "youtube#channel",
"etag": etag,
"contentDetails": {
"relatedPlaylists": {
"likes": {LIKES_PLAYLIST_ID},
"favorites": {FAVORITES_PLAYLIST_ID},
"uploads": {UPLOADS_PLAYLIST_ID},
"watchHistory": {WATCHHISTORY_PLAYLIST_ID},
"watchLater": {WATCHLATER_PLAYLIST_ID}
},
"googlePlusUserId": string
},
}Video đã tải lên và danh sách phát do hệ thống tạo
YouTube thêm tất cả video đã tải lên vào một danh sách phát liên kết với kênh. Để xem danh sách video đã tải lên, bạn hãy truy vấn danh sách phát "uploads" được trả về trong phản hồi ở trên để biết thông tin kênh, sử dụng phương thức playlistItems.list để truy xuất các video trong danh sách phát đó.
Trước khi thực thi yêu cầu mẫu sau trong Google APIs Explorer, hãy thay thế {UPLOADS_PLAYLIST_ID} bằng mã nhận dạng danh sách phát từ yêu cầu trước đó.
GET {base_URL}/playlistItems?part=contentDetails &playlistId={UPLOADS_PLAYLIST_ID}
Xin lưu ý rằng giá trị "id" cho mỗi mục được trả về là mã playlistItem của mục đó. Mã video cho mục danh sách phát là videoId trong phần contentDetails.
Bạn có thể truy xuất danh sách video yêu thích, video đã thích, nhật ký xem hoặc danh sách xem sau của người dùng bằng yêu cầu ở trên bằng cách thay thế mã nhận dạng danh sách phát tương ứng trong phản hồi thông tin kênh.
Danh sách phát do người dùng tạo
Yêu cầu này sử dụng phương thức playlists.list để truy xuất các danh sách phát liên kết với kênh đã xác thực. Xin lưu ý rằng yêu cầu này không truy xuất các danh sách phát do hệ thống tạo có trong thông tin kênh (video tải lên, nhật ký xem, v.v.). Yêu cầu này chỉ truy xuất các danh sách phát do người dùng tạo.
GET {base_URL}/playlists?part=snippet &mine=true
Sau khi có mã nhận dạng danh sách phát, bạn có thể truy xuất các mục trong danh sách phát bằng yêu cầu được trình bày trong phần trước.
Bạn có thể yêu cầu thông tin về danh sách phát công khai của một kênh mà không cần xác thực. Khi gửi một yêu cầu chưa xác thực, bạn cần đưa đối số key chỉ định khoá API duy nhất cho ứng dụng đưa ra yêu cầu. Ví dụ: yêu cầu này truy xuất các danh sách phát liên kết với kênh GoogleDevelopers.
GET {base_URL}/playlists?part=snippet &channelId=UC_x5XG1OV2P6uZZ5FSM9Ttw &key={YOUR_API_KEY}
Truy xuất gói thuê bao
Tài nguyên subscription xác định mối quan hệ giữa người dùng YouTube (người đăng ký) và một kênh. Phương thức subscriptions.list truy xuất người đăng ký một kênh cụ thể hoặc các gói thuê bao của một người dùng cụ thể, tuỳ thuộc vào tham số bạn đưa vào yêu cầu.
Số người đăng ký kênh
Yêu cầu này truy xuất danh sách người đăng ký kênh đã xác thực.
GET {base_URL}/subscriptions?part=snippet &mySubscribers=true
Gói thuê bao của người dùng
Bạn có thể sử dụng cùng một phương thức liệt kê người đăng ký (subscriptions.list) để liệt kê các kênh mà người dùng đăng ký. Yêu cầu này sử dụng tham số mine để truy xuất danh sách các kênh YouTube mà người dùng đã xác thực đăng ký.
GET {base_URL}/subscriptions?part=snippet &mine=true
Truy xuất hoạt động của người dùng
Tài nguyên activity chứa thông tin về một hành động mà một kênh hoặc người dùng cụ thể đã thực hiện trên YouTube – tải video lên, đăng ký một kênh, v.v. Phương thức activities.list truy xuất các hành động liên kết với một kênh hoặc người dùng khớp với tiêu chí yêu cầu. Ví dụ: bạn có thể truy xuất các hành động liên kết với một kênh cụ thể, với các gói thuê bao của người dùng hoặc với trang chủ YouTube tuỳ chỉnh của người dùng.
Hoạt động trong một khoảng thời gian
Yêu cầu này truy xuất tất cả các hành động mà người dùng đã xác thực thực hiện trong tháng 4 năm 2013.
GET {base_URL}/activities?part=snippet,contentDetails &mine=true &publishedAfter=2013-04-01T00%3A00%3A00Z &publishedBefore=2013-05-01T00%3A00%3A00Z
Hoạt động trên trang chủ
Yêu cầu này truy xuất bảng tin hoạt động tuỳ chỉnh xuất hiện trên Trang chủ YouTube của người dùng đã xác thực.
GET {base_URL}/activities?part=snippet,contentDetails &home=true
Để truy xuất số liệu thống kê về lượt xem, chỉ số mức độ phổ biến và thông tin nhân khẩu học cho video và kênh trên YouTube, bạn hãy sử dụng YouTube Analytics API. Trang Yêu cầu API mẫu cho biết cách truy xuất các báo cáo phổ biến từ YouTube Analytics.
Tìm kiếm
Phương thức search.list cho phép bạn tìm kiếm các video trên YouTube, kênh hoặc danh sách phát khớp với tiêu chí đã chỉ định. Bạn có thể tìm kiếm dựa trên các thuộc tính video, từ khoá hoặc chủ đề (hoặc kết hợp các yếu tố này) và bạn có thể sắp xếp kết quả dựa trên các yếu tố như ngày tạo, số lượt xem hoặc điểm xếp hạng.
Giống như các yêu cầu API khác của YouTube Data API, phương thức search.list trả về biểu diễn JSON của một tài nguyên trên YouTube. Tuy nhiên, không giống như các tài nguyên khác trên YouTube, kết quả tìm kiếm không phải là đối tượng liên tục có mã nhận dạng duy nhất.
Nhiều yêu cầu tìm kiếm nội dung có sẵn công khai và do đó không yêu cầu xác thực. Trong số các mẫu bên dưới, chỉ mẫu đầu tiên yêu cầu xác thực, vì mẫu này yêu cầu cụ thể video "của tôi". Khi gửi một yêu cầu chưa xác thực, bạn cần đưa đối số key chỉ định khoá API duy nhất cho ứng dụng của bạn.
Các video có nhiều lượt xem nhất của tôi
Yêu cầu này truy xuất tất cả video của người dùng đã xác thực và liệt kê các video đó theo thứ tự giảm dần theo số lượt xem.
GET {base_URL}/search?part=snippet &forMine=true &order=viewCount &type=video
Video có độ phân giải cao có thể nhúng
Yêu cầu này tìm kiếm các video có các thuộc tính cụ thể, cụ thể là các video có độ phân giải cao có thể nhúng trên các trang web khác. Yêu cầu này liệt kê kết quả theo thứ tự giảm dần theo điểm xếp hạng.
GET {base_URL}/search?part=snippet &order=rating &type=video &videoDefinition=high &videoEmbeddable=true &key={YOUR_API_KEY}
Video về một chủ đề cụ thể
Yêu cầu này thực hiện tìm kiếm theo từ khoá đối với các video về YouTube Data API có phụ đề.
GET {base_URL}/search?part=snippet &q=YouTube+Data+API &type=video &videoCaption=closedCaption &key={YOUR_API_KEY}
Tìm kiếm dựa trên chủ đề
Một cách phức tạp hơn để tìm kiếm video về một chủ đề cụ thể là sử dụng các chủ đề trên Freebase thay vì từ khoá. Tất cả tài nguyên video và kênh trên YouTube đều chứa đối tượng topicDetails chứa danh sách mã chủ đề trên Freebase liên kết với tài nguyên. Tìm kiếm dựa trên chủ đề thông minh hơn tìm kiếm theo từ khoá, vì chủ đề trên Freebase đại diện cho tất cả các khía cạnh của một khái niệm hoặc sự vật trong thế giới thực.
Để tìm kiếm bằng chủ đề trên Freebase, trước tiên, bạn cần truy xuất mã chủ đề bằng Freebase API. Yêu cầu này trả về các video liên kết với chủ đề trên Freebase cho Python, có mã chủ đề là /m/05z1_.
GET {base_URL}/search?part=snippet &topicId=/m/05z1_ &type=video &key={YOUR_API_KEY}
Tìm kiếm danh sách phát hoặc kênh
Bạn không chỉ có thể tìm kiếm video. Bạn cũng có thể tìm kiếm danh sách phát hoặc kênh. Yêu cầu này truy xuất các danh sách phát khớp với từ khoá "soccer" (bóng đá).
GET {base_URL}/search?part=snippet &q=soccer &type=playlist &key={YOUR_API_KEY}
Nếu bạn muốn tìm các kênh về bóng đá, hãy thay đổi tham số type.
GET {base_URL}/search?part=snippet &q=soccer &type=channel &key={YOUR_API_KEY}
Nếu bạn muốn tìm tất cả nội dung liên quan đến bóng đá (kênh, danh sách phát và video), bạn có thể thực hiện tìm kiếm chung. Nếu bạn bỏ qua tham số type, yêu cầu sẽ truy xuất nội dung thuộc tất cả các loại
GET {base_URL}/search?part=snippet &q=soccer &key={YOUR_API_KEY}
Tạo và cập nhật tài nguyên
Các yêu cầu mà chúng ta đã xem xét cho đến nay đều sử dụng phương thức GET của HTTP để truy xuất dữ liệu trên YouTube. YouTube Data API cũng cung cấp các phương thức sử dụng HTTP POST để tạo hoặc cập nhật các tài nguyên trên YouTube như video, danh sách phát hoặc kênh. Các yêu cầu sau đây cung cấp ví dụ.
Các phương thức POST bao gồm Request body (Nội dung yêu cầu), là biểu diễn JSON của tài nguyên đang được tạo hoặc cập nhật. Bạn có thể tạo biểu diễn JSON trong Google APIs Explorer bằng một công cụ tương tác.
Tạo gói thuê bao
Yêu cầu này đăng ký người dùng đã xác thực vào kênh GoogleDevelopers. Nói cách khác, yêu cầu này tạo một tài nguyên gói thuê bao.
POST {base_URL}/subscriptions?part=snippet
Request body: { 'snippet': { 'resourceId': { 'kind': 'youtube#channel', 'channelId': 'UC_x5XG1OV2P6uZZ5FSM9Ttw' } } }
Tạo danh sách phát
Yêu cầu này tạo một danh sách phát công khai mới.
POST {base_URL}/playlists?part=snippet
Request body: { 'snippet': { 'title': 'New playlist', 'description': 'Sample playlist for Data API', } }
Thêm video vào danh sách phát
Bây giờ chúng ta đã tạo một danh sách phát, hãy thêm video vào danh sách phát đó. Yêu cầu này thêm video vào đầu danh sách phát ('position': 0).
POST {base_URL}/playlistItems?part=snippet Request body: { 'snippet': { 'playlistId': '{PLAYLIST_ID}', 'resourceId': { 'kind': 'youtube#video', 'videoId': '{VIDEO_ID}' } 'position': 0 } }