Playlists: update

์žฌ์ƒ๋ชฉ๋ก์„ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์žฌ์ƒ๋ชฉ๋ก์˜ ์ œ๋ชฉ, ์„ค๋ช…, ๊ฐœ์ธ์ •๋ณด ๋ณดํ˜ธ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ• ๋‹น๋Ÿ‰ ์˜ํ–ฅ: ์ด ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋ฉด ํ• ๋‹น๋Ÿ‰ ๋น„์šฉ์ด 50๋‹จ์œ„๊ฐ€ ๋ฉ๋‹ˆ๋‹ค.

์ผ๋ฐ˜์ ์ธ ์‚ฌ์šฉ ์‚ฌ๋ก€

์š”์ฒญ

HTTP ์š”์ฒญ

PUT https://www.googleapis.com/youtube/v3/playlists

์Šน์ธ

์ด ์š”์ฒญ์—๋Š” ๋‹ค์Œ ๋ฒ”์œ„ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์— ๋Œ€ํ•œ ์Šน์ธ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ์ธ์ฆ ๋ฐ ์Šน์ธ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด OAuth 2.0 ์Šน์ธ ๊ตฌํ˜„์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

๋ฒ”์œ„
https://www.googleapis.com/auth/youtubepartner
https://www.googleapis.com/auth/youtube
https://www.googleapis.com/auth/youtube.force-ssl

๋งค๊ฐœ๋ณ€์ˆ˜

๋‹ค์Œ ํ‘œ์—๋Š” ์ด ์ฟผ๋ฆฌ๊ฐ€ ์ง€์›ํ•˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๊ฐ€ ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์—ด๋œ ๋ชจ๋“  ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜์ž…๋‹ˆ๋‹ค.

๋งค๊ฐœ๋ณ€์ˆ˜
ํ•„์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜
part string
part ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ด ์ž‘์—…์—์„œ ๋‘ ๊ฐ€์ง€ ์šฉ๋„๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์“ฐ๊ธฐ ์ž‘์—…์—์„œ ์„ค์ •ํ•  ์†์„ฑ๊ณผ API ์‘๋‹ต์— ํฌํ•จํ•  ์†์„ฑ์„ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ฉ”์„œ๋“œ๋Š” ์š”์ฒญ ๋ณธ๋ฌธ์—์„œ ์ง€์ •ํ•˜๋Š” ๋ชจ๋“  ๋ถ€๋ถ„์— ํฌํ•จ๋œ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•œ ์†์„ฑ์˜ ๊ธฐ์กด ๊ฐ’์„ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์žฌ์ƒ๋ชฉ๋ก์˜ ์„ค๋ช…์€ snippet ๋ถ€๋ถ„์— ํฌํ•จ๋˜๋ฉฐ ์ด ๋ถ€๋ถ„์€ ์š”์ฒญ ๋ณธ๋ฌธ์— ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ์— snippet.description ์†์„ฑ์˜ ๊ฐ’์ด ์ง€์ •๋˜์ง€ ์•Š์œผ๋ฉด ์žฌ์ƒ๋ชฉ๋ก์˜ ๊ธฐ์กด ์„ค๋ช…์ด ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋ชฉ๋ก์—๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์— ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š” part ์ด๋ฆ„์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
  • contentDetails
  • id
  • localizations
  • player
  • snippet
  • status
์„ ํƒ์  ๋งค๊ฐœ๋ณ€์ˆ˜
onBehalfOfContentOwner string
์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์ ์ ˆํ•˜๊ฒŒ ์Šน์ธ๋œ ์š”์ฒญ์—์„œ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ : ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” YouTube ์ฝ˜ํ…์ธ  ํŒŒํŠธ๋„ˆ ์ „์šฉ์ž…๋‹ˆ๋‹ค.

onBehalfOfContentOwner ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์š”์ฒญ์˜ ์Šน์ธ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜ ๊ฐ’์— ์ง€์ •๋œ ์ฝ˜ํ…์ธ  ์†Œ์œ ์ž๋ฅผ ๋Œ€์‹ ํ•˜๋Š” YouTube CMS ์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•จ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ์—ฌ๋Ÿฌ YouTube ์ฑ„๋„์„ ์†Œ์œ ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” YouTube ์ฝ˜ํ…์ธ  ํŒŒํŠธ๋„ˆ๋ฅผ ์œ„ํ•ด ๋งˆ๋ จ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ฝ˜ํ…์ธ  ์†Œ์œ ์ž๋Š” ํ•œ ๋ฒˆ ์ธ์ฆํ•˜๋ฉด ๊ฐœ๋ณ„ ์ฑ„๋„์— ๋Œ€ํ•œ ์ธ์ฆ ์‚ฌ์šฉ์ž ์ธ์ฆ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์ง€ ์•Š๊ณ ๋„ ๋ชจ๋“  ๋™์˜์ƒ ๋ฐ ์ฑ„๋„ ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์ธ์ฆํ•  CMS ๊ณ„์ •์€ ์ง€์ •๋œ YouTube ์ฝ˜ํ…์ธ  ์†Œ์œ ์ž์—๊ฒŒ ์—ฐ๊ฒฐ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์š”์ฒญ ๋ณธ๋ฌธ

์š”์ฒญ ๋ณธ๋ฌธ์— playlist ๋ฆฌ์†Œ์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น ๋ฆฌ์†Œ์Šค์˜ ๊ฒฝ์šฐ ๋‹ค์Œ์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
  • ๋‹ค์Œ ์†์„ฑ์— ๊ฐ’์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    • id
    • snippet.title
  • ๋‹ค์Œ ์†์„ฑ์— ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • snippet.title
    • snippet.description
    • status.privacyStatus
    • status.podcastStatus
    • snippet.defaultLanguage
    • localizations.(key)
    • localizations.(key).title
    • localizations.(key).description

    ์—…๋ฐ์ดํŠธ ์š”์ฒญ์„ ์ œ์ถœํ•˜๋Š”๋ฐ ๊ฐ’์ด ์žˆ๋Š” ์†์„ฑ์— ์š”์ฒญ์ด ๊ฐ’์„ ์ง€์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์†์„ฑ์˜ ๊ธฐ์กด ๊ฐ’์€ ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.

์‘๋‹ต

์ด ๋ฉ”์„œ๋“œ๋Š” ์š”์ฒญ์— ์„ฑ๊ณตํ•˜๋ฉด ์‘๋‹ต ๋ณธ๋ฌธ์—์„œ playlist ๋ฆฌ์†Œ์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ฅ˜

๋‹ค์Œ ํ‘œ์—๋Š” ์ด ๋ฉ”์„œ๋“œ ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ API์—์„œ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ YouTube Data API - ์˜ค๋ฅ˜๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”.

์˜ค๋ฅ˜ ์œ ํ˜• ์˜ค๋ฅ˜ ์„ธ๋ถ€์ •๋ณด ์„ค๋ช…
badRequest (400) defaultLanguageNotSetError defaultLanguage๋Š” localizations๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋„๋ก ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
badRequest (400) localizationValidationError ํ˜„์ง€ํ™” ๊ฐ์ฒด์˜ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. playlists.list ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ ํšจํ•œ ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ณ  ์žฌ์ƒ๋ชฉ๋ก ๋ฆฌ์†Œ์Šค ๋ฌธ์„œ์˜ ๊ฐ€์ด๋“œ๋ผ์ธ์— ๋”ฐ๋ผ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
forbidden (403) playlistForbidden ์ด ์ž‘์—…์ด ๊ธˆ์ง€๋˜์—ˆ๊ฑฐ๋‚˜ ์š”์ฒญ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์Šน์ธ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.
invalidValue (400) invalidPlaylistSnippet ์š”์ฒญ์ด ์ž˜๋ชป๋œ ์žฌ์ƒ๋ชฉ๋ก ์Šค๋‹ˆํŽซ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
notFound (404) playlistNotFound ์š”์ฒญ์˜ id ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์‹๋ณ„๋œ ์žฌ์ƒ๋ชฉ๋ก์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
required (400) playlistTitleRequired ์š”์ฒญ์—์„œ ์žฌ์ƒ๋ชฉ๋ก์˜ ์ œ๋ชฉ์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
invalidValue (400) playlistOperationUnsupported API๋Š” ์ง€์ •๋œ ์žฌ์ƒ๋ชฉ๋ก์„ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์—…๋กœ๋“œํ•œ ๋™์˜์ƒ ์žฌ์ƒ๋ชฉ๋ก์˜ ์†์„ฑ์€ ์—…๋ฐ์ดํŠธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์‚ฌ์šฉํ•ด ๋ณด๊ธฐ

APIs Explorer๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด API๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  API ์š”์ฒญ ๋ฐ ์‘๋‹ต์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.