亲,那个以为自己很牛逼,但其实只是猴子河童又在玩啥?!全也要下架!
#玻璃森友會 #猛男之森 #猛男撿樹枝
😂原來已經有生成器:https://hkacgmemes.github.io/gif-switch-meme-gen/
-------------------------------------------------
【回應越南網民疑慮批評 東亞及東南亞團結對抗中共掘起】
(scroll down for English & 下面有中文)
Xin chào các bạn Việt Nam: Hôm qua, mình đã sử dụng thuật ngữ "khỉ Việt Nam" trong bài đăng trên Facebook của mình. Mình có ý đó là mỉa mai, vì những người theo chủ nghĩa dân tộc Trung Quốc luôn sử dụng thuật ngữ phân biệt chủng tộc chống lại mình. Mình không bao giờ có ý định xúc phạm các bạn. Mình xin lỗi vì sự hiểu lầm và đã loại bỏ thuật ngữ trong bài viết của mình. Mình biết nhiều người Việt Nam yêu tự do từ lâu đã ủng hộ Hồng Kông. Chúng tôi nên cùng nhau đấu tranh cho dân chủ!
(Cảm ơn 敖卓軒 (Jeffrey Ngo) đã giúp tôi dịch)
-----------------------------------------------
本文原意為以日本河童和越南猴子等小粉紅曾使用的字眼,反諷喜歡侮辱我的中國網民;怎料激起越南網友以為我有意詆毁他們,其實我完全沒有這個意思,在此向各位越南人致歉,我也為免誤會,經已在此帖刪除越南此一字詞。
又另外,就著經常被指稱為越南人一事,其實我作為土生土長,於香港出生的香港人,自己家族四代也與越南沒有任何淵源,族譜裏據悉也沒有人曾在越南出生或在當地工作⋯⋯
不過縱然如此,在抵抗威權的戰線上,我也非常希望與東亞地區的朋友一起努力,尤其是不管香港還是越南等東南亞國家還是香港,在過去也深深感受到中國勢力擴張帶來的負面影響,我們定必團結一致對抗暴政。
最後奉勸小粉紅們,不要再以為抵毀我作越南人會有甚麼作用了,這只是說明從牆來出征的網民,只是在玩弄種族主義,反映質素何其低劣 :)
-----------------------------------------------
Although I am a #Hongkonger, Chinese netizens often call me Vietnamese monkey. I am sorry that my friends in #Vietnam feel uncomfortable when I used the term to mock myself. So I delete it and apologize for your frustration.
But what is more worrying is that #China’s netizens more and more often use these racist terms to describe people in #Vietnam, #Japan, #Taiwan, #Uyghurs, #Thailand in recent #nnevvy incident, and even African workers in #Guangzhou and #Beijing.
That is a kind of extreme nationalist bullying, warranted by an authoritarian #China and reaching out every corner of the world. With its swelling economic clout, #Chinese pay no respect to other people’s liberties and dignity.
In defence of our freedoms and human dignity, I invite people in all Asian and African countries to fight against #China’s authoritarian expansion. Our life should not be trampled on by extreme nationalists from #China.
https://twitter.com/joshuawongcf/status/1249259287488139271
The Vietnamese people — having endured decades of racism, imperialism and geopolitical oppression from China — have likewise long been standing up for Hong Kong, even as the Vietnamese government is reluctant to say anything pro-democracy.
同時也有278部Youtube影片,追蹤數超過38萬的網紅CH Music Channel,也在其Youtube影片中提到,《ゴブリンスレイヤー》 Rightfully 作詞:momocashew 作曲:momocashew、Yamato Kasai 編曲:Yamato Kasai、Yukihito Mitomo、Shoto Yoshida 主唱:Mili 翻譯:CH 版權聲明: 本頻道不握有任何音樂所有權,亦無任何營...
「kind of中文」的推薦目錄:
- 關於kind of中文 在 黃之鋒 Joshua Wong Facebook
- 關於kind of中文 在 丹妮婊姐星球 Facebook
- 關於kind of中文 在 美國在台協會 AIT Facebook
- 關於kind of中文 在 CH Music Channel Youtube
- 關於kind of中文 在 CH Music Channel Youtube
- 關於kind of中文 在 KARMAN Youtube
- 關於kind of中文 在 電影『比悲傷更悲傷的故事More Than Blue 』主題曲 - YouTube 的評價
- 關於kind of中文 在 YouTube Data API Overview | Google Developers 的評價
kind of中文 在 丹妮婊姐星球 Facebook 八卦
今天我在subway,我旁邊的客人跟店員都講英文,我內心讚嘆店員英文真好,要是韓國人應該已經崩潰。
客人問what kind of combo do you have,店員指板子說we got these,我一看全中文,我就笑出來說,他看得懂嗎,結果左邊那客人說:喔 我看的懂
我一轉頭,靠台灣人,現在是何嘉仁在出外景嗎!你x卡好哈哈哈哈哈哈,這時候如果轉頭看到的是帥哥,就是天啊英文真好,如果不帥的話就是,媽的給拎祖媽繞什麼english!至於我看到的到底帥不帥,我保留答案哈哈哈哈哈哈
友人鳳姐聽完故事後說:不,是天才衝衝衝,乃哥快出來!
哈哈哈哈哈哈哈對,不然就是他們真的很想practice English,unfortunately 被superstar 打斷了!
kind of中文 在 美國在台協會 AIT Facebook 八卦
💕「愛台灣,我的選擇」系列第16發:熱愛台灣詩的美國學者白瑞梅(Amie Parry)
「我在加州內陸地區一個叫做聖伯納迪諾的小城市長大,隨後在聖地牙哥念大學和研究所,並獲得文學博士學位。求學期間我們必須至少選修一門外語,所以我就選了中文。1987年我大學畢業之後,跟朋友來了台灣一趟,在台灣教英文和學中文六個月,接著就自己一個人當起背包客在亞洲四處旅遊。
我本來想要研究中國古典詩詞,後來因為獲得傅爾布萊特獎學金,便又再度回到台灣。當時我在討論詩詞的聚會上認識了幾位現代派詩人,所以我就將研究主題轉而聚焦在台灣60、70和80年代的現代詩。我的博士論文探討的就是,以現代主義來理解現有政治語言中難以理解的現代性。我認為歷史形塑而來的經驗,往往比語言本身還要複雜。
我研究的那些詩作沒有明確的政治性,反而是有很強的實驗性質,並帶著詭譎的神秘感。當時我認識的現代派詩人大多是跟著國民黨飄洋過海來台的外省人,他們經歷過戰爭和顛沛流離,也經歷過劇烈且痛苦的歷史創傷。每個人的經驗都不同,在那個年代,也很難說出口。後來,我寫了一本關於詩的書,並聚焦在一兩位我覺得特別有趣的詩人。我在書中問了一些類似的問題:這些詩作如何幫你思考艱難的議題?
當時的現代詩已經頗有制度,許多詩人都有投稿《現代詩》這份重要的詩刊,有些詩人則是將詩作與戲劇結合。整體而言,台灣的現代詩、表演藝術和文學都發展地如火如荼,也深深吸引了我,但我還未全盤了解。當我完成博士論文時,我便獲得交通大學的教職,讓我對台灣的學術圈感到非常驚艷。而當我出版第一本著作時,我也很訝異能在美國獲獎;我根本不知道自己獲得提名,當時我問授獎單位:「為什麼選擇我的書?」他們表示:「因為書中其中一個章節是以跨國的架構來進行整體論述,妳不是單用西方的理論和東方的詩詞,而是從東西方共同錘煉出嶄新的知識。」
我目前任教於中央大學英美語文學系,除了擔任系主任之外,我也有教授寫作課、文學課和文學文化理論課程。從我1987年第一次來台灣到現在,我覺得台灣人愈來愈能自在地與來自不同地方的人交談,就個人經驗來說,我認為台灣社會愈來愈開放。我第一次來台灣時,經歷了許多台灣社會有趣的發展,也結交了許多朋友,並認識了許多學術圈的同好。我想,這些珍貴的回憶就是呼喚我再度回台的動力;就像是,如果你覺得這個社會充滿生氣和活力,而你也能夠參與其中、做出貢獻,我想這就是像家一樣的感覺吧!」
✨白瑞梅 Amie Parry 現為中央大學英美語文學系 專任教授
💕Why I chose Taiwan #16 – Amie Parry
“I grew up in a small city in inland California called San Bernardino. I went to college and graduate school in San Diego. I got my PhD in literature. We were all expected to learn at least one language, so I did Chinese. I traveled to Taiwan with a friend right after I graduated from college in 1987. We came here to teach English and study Chinese for six months, then I traveled around Asia by myself with a backpack.
I originally wanted to study classical Chinese poetry. I got a Fulbright grant and I came back here. I started going to the poetry nights that were happening at that time. I met some of the modernist poets, and I switched my focus to the modernist poetry of the 60s, 70s, and 80s in Taiwan. I wrote my dissertation on modernism as a way of understanding the parts of modernity that are hard to know in the existing political language that we inherit. I think that experience in historical formation is always more complicated than the language.
These poems are not explicitly political; they're very experimental and strange. At the time, the modernist poets I met were mostly 外省, men who had been drafted and come over with the KMT, so they had experienced war and displacement, and a very intense and traumatic historical moment. People experienced it differently, and at that time, it was a hard thing to talk about. Later, I wrote a book about poetry, but I just focused on one or two poets I find really, really fascinating. And I was asking some of the same kinds of questions: how can these poems help you think about certain topics that are hard to think about?
At that time, Modernist poetry was a kind of an institution already. There was a journal called 現代詩, “Modern Poetry,” a really important journal that most of these poets were published in. Some of them combined poetry and theater. There's just so much going on in Taiwan in terms of poetry and performance and literature. It's just amazing. And I'm very interested in it at all, but I haven't kept up. After I finished my dissertation, I got a job offer at 交大. I thought, wow, there's something really amazing happening intellectually here. When my first book came out, it actually got an award in the U.S., and I was so surprised. I didn't even know it had been nominated. I asked them, ‘Why did you choose my book?’ And they said, because one of the chapters has a transnational of framework for the whole argument, so it wasn't like you used Western theories and Eastern texts, it's like the whole knowledge part is coming out of both places.
I currently teach in the English department at National Central University. I'm the chair and I teach writing classes, literature classes, and literary and cultural theory classes. Since my first visit to Taiwan in 1987, I think people are a little more comfortable talking to people from different places. In my personal interactions, I feel a difference, like a greater openness. Back then, there were so many interesting things happening here, all at one time, and that's the time that I happened to be here. And I made good friends in my personal life and in my intellectual life. And I think those are the things that made me come back: like if you feel that there's something interesting happening and there's some way that you can support it. I guess that's a way of feeling at home.” — Amie Parry
✨Amie Parry is professor of the Department of English at the National Central University
kind of中文 在 CH Music Channel Youtube 的評價
《ゴブリンスレイヤー》
Rightfully
作詞:momocashew
作曲:momocashew、Yamato Kasai
編曲:Yamato Kasai、Yukihito Mitomo、Shoto Yoshida
主唱:Mili
翻譯:CH
版權聲明:
本頻道不握有任何音樂所有權,亦無任何營利,一切僅為推廣用途。音樂所有權歸原始創作者所有。請支持正版。
Copyright Info:
Be aware this channel is for promotion purpose only without any illegal profit. All music's ownership belongs to the original creators.
Please support the original creator.
すべての権利は正当な所有者/作成者に帰属します。あなたがこの音楽(または画像)の作成者で、この動画に使用されたくない場合はメッセージまたはこのYoutubeチャンネルの概要のメールアドレスにご連絡ください。私はすぐに削除します。
如果你喜歡我的影片,不妨按下喜歡和訂閱,你的支持就是我創作的最大原動力!
If you like my videos, please click like and subscribe! Thx :)
粉絲團隨時獲得最新訊息!
https://www.facebook.com/chschannel/
Check my Facebook page for more information!
https://www.facebook.com/chschannel/
背景 / Background - ゴブリンスレイヤー - じゅぴぽに :
https://www.pixiv.net/member_illust.php?mode=medium&illust_id=71224778
翻譯連結 / Referenced Translation :
https://home.gamer.com.tw/creationDetail.php?sn=4183498
英文歌詞 / English Lyrics :
Chained onto me, my adolescent dreams
Pulling, dragged me deep
All my body exposed
Marked up by your shadows
Tighten up, numb your senses
No fairness is needed for pigs
Laughters above, playful smiles, die get rolled
Bathe in sorrow
My tomorrow is built upon your flesh
Slay the last of your kind
To reclaim what's rightfully mine
I still dream of you
Will you be disappointed that I'm not who I used to be?
Will you hold me tightly?
Chained onto me, my adolescent dreams
Pulling, dragged me deep
All my body exposed
Marked up by your shadows
Piece by piece the tables turn and turn again in this eternal game
Biscuits with clotted cream and milk tea
Time to roll your d20
Gods nor demons ready to admit defeat
Eat up, grind your teeth
They're not that much smarter than us
Laughters above, playful smiles, die get rolled
Swallow your fate
Lubricate our blades with blood and tears
And your piercing screams are music to celebrate
Infiltrate penetrate
Soon we'll have you destroyed, back to the old days
Slay the last of your kind
To reclaim what's rightfully mine
中文歌詞 / Chinese Lyrics :
孩提時候的夢想,猶如鎖鏈般緊縛於身
僅是,將我步步拖入深淵
將這副身軀暴露在外
以你的身影,刻下道道深痕
繃緊神經、麻痺你的感官
對待畜牲無須絲毫慈悲
啞然失笑的眾神,綻放陣陣爛漫笑顏,擲落命運之骰
沉浸於哀慟之中
我的未來將築於它們的血肉之上
我會將它們趕盡殺絕
僅為了奪回,所有屬於我的一切
我仍然能在夢中,瞥見妳的身影
若看見如此不堪入目的我,妳是否會感到失望?
還是妳會,緊緊將我擁入懷中?
孩提時候的夢想,猶如鎖鏈般緊縛於身
僅是,將我步步拖入深淵
將這副身軀暴露在外
以你的身影,刻下道道深痕
在這場沒有終點的遊戲中,一顆顆棋子不停地改變局勢
來點餅乾、奶油再配上杯奶茶
「該換你骰d20囉!」
神與神之間,誰都不願低頭認輸
齜牙裂嘴的打磨齒間
「人也沒我們聰明多少!」
啞然失笑的眾神,綻放陣陣爛漫笑顏,擲落命運之骰
接受你的命運
以你們的血與淚滋潤我的劍刃
而你那刺耳般的悲鳴,正是屬於我悅耳的樂章
刺穿你們的個個身軀
我將會為你們迎來終焉,回到過往那段時光
我會將你們趕盡殺絕
僅為了奪回,那曾屬於我的一切

kind of中文 在 CH Music Channel Youtube 的評價
《Sleepless Nights》
AM02:00
作詞:aimerrhythm
作曲:宮川暢彦
編曲:玉井健二、Integral Clover
歌:Aimer
翻譯:夏德爾
English Translation: Lyrical Nonsense
版權聲明:
本頻道不握有任何音樂所有權,亦無任何營利,一切僅為推廣用途。音樂所有權歸原始創作者所有。請支持正版。
Copyright Info:
Be aware this channel is for promotion purpose only without any illegal profit. All music's ownership belongs to the original creators.
Please support the original creator.
すべての権利は正当な所有者/作成者に帰属します。あなたがこの音楽(または画像)の作成者で、この動画に使用されたくない場合はメッセージまたはこのYoutubeチャンネルの概要のメールアドレスにご連絡ください。私はすぐに削除します。
如果你喜歡我的影片,不妨按下喜歡和訂閱,你的支持就是我創作的最大原動力!
If you like my videos, please click like and subscribe! Thx :)
粉絲團隨時獲得最新訊息!
https://www.facebook.com/chschannel/
Check my Facebook page for more information!
https://www.facebook.com/chschannel/
背景 / Background - 夜空へ - みふる :
https://www.pixiv.net/artworks/66437132
中文翻譯 / Chinese Translation :
https://home.gamer.com.tw/creationDetail.php?sn=2192946
英文翻譯 / English Translation :
https://www.lyrical-nonsense.com/lyrics/aimer/am0200/
日文歌詞 / Japanese Lyrics :
AM02:00の誘う風に
少し 遠く ここまで来た
嫌いな街灯りさえ 紅く 淡く にじんでいた
あの時 君が言った言葉は まだ胸で そうrefrain
繰り返しては 眠れない夜を巡る
君を思うほどに いつも残るの ただ不安が
私はまだここにいる
そばにいたいって言えずに 眠れずに
君を思うほどに どうして逃げたくなるの?
私を見て きっと君なら そう 笑うよね?
笑うよね…
You don’t know really how I feel.
You don’t know really what I feel.
I miss you, really.
You don’t know really how I feel.
You don’t know really what I feel.
AM02:00の誘う風に
少し 遠く ここまで来た
降り注ぐ優しい雨 碧く 甘く 包んでいた
会えない 夜のこんな 気持ちを 濡らしていく そう let it rain
傘もささずに 眠れない夜を巡る
君を思うほどに いつも残るの ただ不安が
私はまだ願っている
こんな夜のコト 言えずに 眠れずに
君を思うことが どうして悲しくなるの?
また明日 きっといつものように会えるよね?
会えるよね…
君を思うほどに いつも 残るの ただ不安が
私はまだここにいる
そばにいたいって言えずに AM02:00
君を思うほどに どうして逃げたくなるの
私を見て きっと君ならそう 笑うよね?
笑うよね…
You don’t know really how I feel.
You don’t know really what I feel.
I miss you, really.
You don’t know really how I feel.
You don’t know really what I feel.
I miss you, really.
中文歌詞 / Chinese Lyrics :
凌晨兩點,因為風的慫恿
我來到了這個稍微遙遠一點的地方
到了這裡,就連那惹人厭街燈橙紅,也已經在淚水中模糊
那時你所說的話語,至今都還在我的胸口盪漾,不斷重複
徘徊在這遲遲無法入睡的夜晚
越是思念你,就會殘存越多的不安
我還在這裡徘徊
無法脫口我想在你的身邊而遲遲無法入眠
為何越是愛戀你,就越是想要逃離這一切呢?
若是你看見了這樣的我,你肯定會嘲笑我的吧?
肯定會吧?
你根本不知道我是怎麼看待這份思念
你也不知道,我到底作何感受
我真的好想你
你根本不知道我是怎麼看待這份思念
你也不知道,我到底作何感受
凌晨兩點,在風的慫恿下
我來到了這稍微遙遠的地方
眼淚溫柔飄落,漸漸的使我沉浸在這片寂靜與安逸中
無法見到你的,這種夜晚的心情,漸漸淋濕,是的,就淋上一場雨吧
也不必撐傘了,就這麼在無法入睡的夜晚中徘徊
越是思念,就會殘存越多的不安
我依舊盼望
無法訴說如此夜晚的掙扎而遲遲無法入眠
到底是為什麼,越是愛戀你就越是悲傷呢?
明天,肯定也可以一如往常的看見你吧?
可以嗎?
越是愛戀,就有越多的不安
我還逃離不了
無法脫口自己想要待在你的身邊,就在凌晨兩點的這時候——
究竟是為什麼,越是思念你就越是讓我想要逃離這一切呢?
看見如此掙扎的我,你肯定會嘲笑的吧?
肯定會吧?
你根本不知道我是怎麼看待這份思念
你也不知道,我到底作何感受
我真的好想你
你根本不知道我的心情
你也根本不知道,我到底有多喜歡你
我真的好愛你
英文歌詞 / English Lyrics :
I came here, a bit of a distance away,
On the inviting breeze of 02:00 AM
Even the city lights I dislike
Blurred crimson and pale
The words you said that day
Are still my heart; yes, they are a refrain
It’s a cycle of sleepless nights as I repeat them, over and over
When I think of you, anxiety is the only thing that remains
I am still here
Unable to say that I want to be by your side, unable to sleep,
When I think of you, why do I want to run away?
If you saw me like this you’d laugh, right?
I’m sure you’d laugh…
You don’t know how I really I feel.
You don’t know how I really I feel.
I miss you, really.
I came here, a bit of a distance away,
On the inviting breeze of 02:00 AM
The kind, pouring rain
Warmly, sweetly enveloped me
These kinds of feelings on nights we’re not together
Are dampened; yes, let it rain
It’s a cycle of sleepless nights and I can’t even open an umbrella
When I think of you, anxiety is the only thing that remains
I am still hoping
Unable to talk about these kind of nights, unable to sleep,
Why has the act of thinking of you become sad?
Tomorrow, we’ll see each other as we always do, won’t we?
I’m sure we will…
When I think of you, anxiety is the only thing that remains
I am still here
Unable to say that I want to be by your side, at 02:00 AM
When I think of you, why do I want to run away
If you saw me like this you’d laugh, right?
I’m sure you’d laugh…
You don’t know how I really I feel.
You don’t know how I really I feel.
I miss you, really.
You don’t know how I really I feel.
You don’t know how I really I feel.
I miss you, really.

kind of中文 在 KARMAN Youtube 的評價
Super easy method to get korean gradient lips with 2 or less products! You can get it with even 1 lipstick, no fingers required! 中文字幕請開CC選擇繁體中文.
v v MORE INFO v v
check out my blog entry for more supplementary information!
http://madokeki.blogspot.com/2014/03/get-korean-gradient-lips-1-product-2.html
here i showed you 5 different ways - depending on what product you have on hand, one of the ways should work for you!
ok, i admit the title is the scenario for the easiest method! if you're using 2 products, there is an additional step to apply the 2nd product, but that doesn't count, right? :P
for those of you who have too much time to blend out the lips using your finger, and for those of you who are plain lazy (like me) or running out of time, you can still get the gradient lips without your finger!!!
HOPE YOU FOUND THIS USEFUL! thumbs up if you like this video, this will help me know what kind of videos you all like so i can make more videos like this in the future!
xoxo
karman
PRODUCTS USED =============
(base makeup)
dr jart+ : black label bb cream
kanebo kate : stick concealer light beige
kanebo kate : mineral powder foundation in OC-B
(lipcolour/lipsticks)
nature republic : by flower triple volume tint 05 peony
revlon : super lustrous matte lipstick 010 wine not
loreal : colour riche lipstick P511 touch of amaranth
revlon : just bitten balm stain 045 romantic, 050 precious
revlon : color burst matte balm 210 unapologetic
CONNECT WITH ME ================
I BLOG: http://madokeki.blogspot.com
I INSTAGRAM: http://instagram.com/madokeki
I TWEET: http://twitter.com/madokeki
korean gradient lips, ulzzang, uljjang, lipstick, lip stain, lip tint, asian, tutorial, how to, how to get, foundation, concealer, powder, bb cream, liquid, 咬唇, 韓國, 咬唇妝, 教學

kind of中文 在 YouTube Data API Overview | Google Developers 的八卦
Introduction
This document is intended for developers who want to write applications that interact with YouTube. It explains basic concepts of YouTube and of the API itself. It also provides an overview of the different functions that the API supports.
Before you startYou need a Google Account to access the Google API Console, request an API key, and register your application.
Create a project in the Google Developers Console and obtain authorization credentials so your application can submit API requests.
After creating your project, make sure the YouTube Data API is one of the services that your application is registered to use:
Go to the API Console and select the project that you just registered.
Visit the Enabled APIs page.
In the list of APIs, make sure the status is ON for the YouTube Data API v3.
If your application will use any API methods that require user authorization, read the authentication guide to learn how to implement OAuth 2.0 authorization.
Select a client library to simplify your API implementation.
Familiarize yourself with the core concepts of the JSON (JavaScript Object Notation) data format. JSON is a common, language-independent data format that provides a simple text representation of arbitrary data structures. For more information, see json.org.
Resources and resource types
A resource is an individual data entity with a unique identifier. The table below describes the different types of resources that you can interact with using the API.
Resources
activity
Contains information about an action that a particular user has taken on the YouTube site. User actions that are reported in activity feeds include rating a video, sharing a video, marking a video as a favorite, and posting a channel bulletin, among others.
channel
Contains information about a single YouTube channel.
channelBanner
Identifies the URL to use to set a newly uploaded image as the banner image for a channel.
channelSection
Contains information about a set of videos that a channel has chosen to feature. For example, a section could feature a channel's latest uploads, most popular uploads, or videos from one or more playlists.
guideCategory
Identifies a category that YouTube associates with channels based on their content or other indicators, such as popularity. Guide categories seek to organize channels in a way that makes it easier for YouTube users to find the content they're looking for. While channels could be associated with one or more guide categories, they are not guaranteed to be in any guide categories.
i18nLanguage
Identifies an application language that the YouTube website supports. The application language can also be referred to as a UI language.
i18nRegion
Identifies a geographic area that a YouTube user can select as the preferred content region. The content region can also be referred to as a content locale.
playlist
Represents a single YouTube playlist. A playlist is a collection of videos that can be viewed sequentially and shared with other users.
playlistItem
Identifies a resource, such as a video, that is part of a playlist. The playlistItem resource also contains details that explain how the included resource is used in the playlist.
search result
Contains information about a YouTube video, channel, or playlist that matches the search parameters specified in an API request. While a search result points to a uniquely identifiable resource, like a video, it does not have its own persistent data.
subscription
Contains information about a YouTube user subscription. A subscription notifies a user when new videos are added to a channel or when another user takes one of several actions on YouTube, such as uploading a video, rating a video, or commenting on a video.
thumbnail
Identifies thumbnail images associated with a resource.
video
Represents a single YouTube video.
videoCategory
Identifies a category that has been or could be associated with uploaded videos.
watermark
Identifies an image that displays during playbacks of a specified channel's videos. The channel owner can also specify a target channel to which the image links as well as timing details that determine when the watermark appears during video playbacks and then length of time it is visible.
Note that, in many cases, a resource contains references to other resources. For example, a playlistItem
resource's snippet.resourceId.videoId
property identifies a video resource that, in turn, contains complete information about the video. As another example, a search result contains either a videoId
, playlistId
, or channelId
property that identifies a particular video, playlist, or channel resource.
The following table shows the most common methods that the API supports. Some resources also support other methods that perform functions more specific to those resources. For example, the videos.rate
method associates a user rating with a video, and the thumbnails.set
method uploads a video thumbnail image to YouTube and associates it with a video.
Operations
list
Retrieves (
GET
) a list of zero or more resources.insert
Creates (
POST
) a new resource.update
Modifies (
PUT
) an existing resource to reflect data in your request.delete
Removes (
DELETE
) a specific resource.The API currently supports methods to list each of the supported resource types, and it supports write operations for many resources as well.
The table below identifies the operations that are supported for different types of resources. Operations that insert, update, or delete resources always require user authorization. In some cases, list
methods support both authorized and unauthorized requests, where unauthorized requests only retrieve public data while authorized requests can also retrieve information about or private to the currently authenticated user.
Supported Operations
list
insert
update
delete
activity
caption
channel
channelBanner
channelSection
comment
commentThread
guideCategory
i18nLanguage
i18nRegion
playlist
playlistItem
search result
subscription
thumbnail
video
videoCategory
watermark
Quota usage
The YouTube Data API uses a quota to ensure that developers use the service as intended and do not create applications that unfairly reduce service quality or limit access for others. All API requests, including invalid requests, incur at least a one-point quota cost. You can find the quota available to your application in the API Console.
Projects that enable the YouTube Data API have a default quota allocation of 10,000 units per day, an amount sufficient for the overwhelming majority of our API users. Default quota, which is subject to change, helps us optimize quota allocations and scale our infrastructure in a way that is more meaningful to our API users. You can see your quota usage on the Quotas page in the API Console.
Note: If you reach the quota limit, you can request additional quota by
completing the Quota extension
request form for YouTube API Services.
Google calculates your quota usage by assigning a cost to each request. Different types of
operations have different quota costs. For example:
A read operation that retrieves a list of resources -- channels, videos, playlists -- usually
costs 1 unit.
A write operation that creates, updates, or deletes a resource usually has costs
50
units.A search request costs
100
units.A video upload costs
1600
units.The Quota costs for API requests table shows the
quota cost of each API method. With these rules in mind, you can estimate the number of requests
that your application could send per day without exceeding your quota.
The API allows, and actually requires, the retrieval of partial resources so that applications avoid transferring, parsing, and storing unneeded data. This approach also ensures that the API uses network, CPU, and memory resources more efficiently.
The API supports two request parameters, which are explained in the following sections, that enable you to identify the resource properties that should be included in API responses.
The part
parameter identifies groups of properties that should be returned for a resource.
The fields
parameter filters the API response to only return specific properties within the requested resource parts.
part
parameterThe part
parameter is a required parameter for any API request that retrieves or returns a resource. The parameter identifies one or more top-level (non-nested) resource properties that should be included in an API response. For example, a video
resource has the following parts:
snippet
contentDetails
fileDetails
player
processingDetails
recordingDetails
statistics
status
suggestions
topicDetails
All of these parts are objects that contain nested properties, and you can think of these objects as groups of metadata fields that the API server might (or might not) retrieve. As such, the part
parameter requires you to select the resource components that your application actually uses. This requirement serves two key purposes:
It reduces latency by preventing the API server from spending time retrieving metadata fields that your application doesn't use.
It reduces bandwidth usage by reducing (or eliminating) the amount of unnecessary data that your application might retrieve.
Over time, as resources add more parts, these benefits will only increase since your application will not be requesting newly introduced properties that it doesn't support.
How to use thefields
parameterThe fields
parameter filters the API response, which only contains the resource parts identified in the part
parameter value, so that the response only includes a specific set of fields. The fields
parameter lets you remove nested properties from an API response and thereby further reduce your bandwidth usage. (The part
parameter cannot be used to filter nested properties from a response.)
The following rules explain the supported syntax for the fields
parameter value, which is loosely based on XPath syntax:
Use a comma-separated list (fields=a,b
) to select multiple fields.
Use an asterisk (fields=*
) as a wildcard to identify all fields.
Use parentheses (fields=a(b,c)
) to specify a group of nested properties that will be included in the API response.
Use a forward slash (fields=a/b
) to identify a nested property.
In practice, these rules often allow several different fields
parameter values to retrieve the same API response. For example, if you want to retrieve the playlist item ID, title, and position for every item in a playlist, you could use any of the following values:
fields=items/id,playlistItems/snippet/title,playlistItems/snippet/position
fields=items(id,snippet/title,snippet/position)
fields=items(id,snippet(title,position))
Note: As with all query parameter values, the fields
parameter value must be URL encoded. For better readability, the examples in this document omit the encoding.
The examples below demonstrate how you can use the part
and fields
parameters to ensure that API responses only include the data that your application uses:
Example 1 returns a video resource that includes four parts as well as
kind
and etag
properties.Example 2 returns a video resource that includes two parts as well as
kind
and etag
properties.Example 3 returns a video resource that includes two parts but excludes
kind
and etag
properties.Example 4 returns a video resource that includes two parts but excludes
kind
and etag
as well as some nested properties in the resource's snippet
object.Example 1
URL: https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=YOUR_API_KEY
&part=snippet,contentDetails,statistics,statusDescription: This example retrieves avideo
resource and identifies several
resource parts that should be included in the API response.API response:
{
"kind": "youtube#videoListResponse",
"etag": "\"UCBpFjp2h75_b92t44sqraUcyu0/sDAlsG9NGKfr6v5AlPZKSEZdtqA\"",
"videos": [
{
"id": "7lCDEYXw3mM",
"kind": "youtube#video",
"etag": "\"UCBpFjp2h75_b92t44sqraUcyu0/iYynQR8AtacsFUwWmrVaw4Smb_Q\"",
"snippet": {
"publishedAt": "2012-06-20T22:45:24.000Z",
"channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"title": "Google I/O 101: Q&A On Using Google APIs",
"description": "Antonio Fuentes speaks to us and takes questions on working with Google APIs and OAuth 2.0.",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/default.jpg"
},
"medium": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/mqdefault.jpg"
},
"high": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/hqdefault.jpg"
}
},
"categoryId": "28"
},
"contentDetails": {
"duration": "PT15M51S",
"aspectRatio": "RATIO_16_9"
},
"statistics": {
"viewCount": "3057",
"likeCount": "25",
"dislikeCount": "0",
"favoriteCount": "17",
"commentCount": "12"
},
"status": {
"uploadStatus": "STATUS_PROCESSED",
"privacyStatus": "PRIVACY_PUBLIC"
}
}
]
}
Example 2
URL: https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=YOUR_API_KEY
&part=snippet,statisticsDescription: This example modifies thepart
parameter value so that the
contentDetails
andstatus
properties are not included
in the response.API response:
{
"kind": "youtube#videoListResponse",
"etag": "\"UCBpFjp2h75_b92t44sqraUcyu0/sDAlsG9NGKfr6v5AlPZKSEZdtqA\"",
"videos": [
{
"id": "7lCDEYXw3mM",
"kind": "youtube#video",
"etag": "\"UCBpFjp2h75_b92t44sqraUcyu0/iYynQR8AtacsFUwWmrVaw4Smb_Q\"",
"snippet": {
"publishedAt": "2012-06-20T22:45:24.000Z",
"channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"title": "Google I/O 101: Q&A On Using Google APIs",
"description": "Antonio Fuentes speaks to us and takes questions on working with Google APIs and OAuth 2.0.",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/default.jpg"
},
"medium": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/mqdefault.jpg"
},
"high": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/hqdefault.jpg"
}
},
"categoryId": "28"
},
"statistics": {
"viewCount": "3057",
"likeCount": "25",
"dislikeCount": "0",
"favoriteCount": "17",
"commentCount": "12"
}
}
]
}
Example 3
URL: https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=YOUR_API_KEY
&part=snippet,statistics&fields=items(id,snippet,statistics)Description: This example adds thefields
parameter to remove all
kind
andetag
properties from the API response.API response:
{
"videos": [
{
"id": "7lCDEYXw3mM",
"snippet": {
"publishedAt": "2012-06-20T22:45:24.000Z",
"channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"title": "Google I/O 101: Q&A On Using Google APIs",
"description": "Antonio Fuentes speaks to us and takes questions on working with Google APIs and OAuth 2.0.",
"thumbnails": {
"default": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/default.jpg"
},
"medium": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/mqdefault.jpg"
},
"high": {
"url": "https://i.ytimg.com/vi/7lCDEYXw3mM/hqdefault.jpg"
}
},
"categoryId": "28"
},
"statistics": {
"viewCount": "3057",
"likeCount": "25",
"dislikeCount": "0",
"favoriteCount": "17",
"commentCount": "12"
}
}
]
}
Example 4
URL: https://www.googleapis.com/youtube/v3/videos?id=7lCDEYXw3mM&key=YOUR_API_KEY
&fields=items(id,snippet(channelId,title,categoryId),statistics)&part=snippet,statisticsDescription: This example modifies thefields
parameter from example 3
so that in the API response, each video resource'ssnippet
object only includes thechannelId
,title
,
andcategoryId
properties.API response:
{
"videos": [
{
"id": "7lCDEYXw3mM",
"snippet": {
"channelId": "UC_x5XG1OV2P6uZZ5FSM9Ttw",
"title": "Google I/O 101: Q&A On Using Google APIs",
"categoryId": "28"
},
"statistics": {
"viewCount": "3057",
"likeCount": "25",
"dislikeCount": "0",
"favoriteCount": "17",
"commentCount": "12"
}
}
]
}
Optimizing performance
Using ETags
ETags, a standard part of the HTTP protocol, allow applications to refer to a specific version of a particular API resource. The resource could be an entire feed or an item in that feed. This functionality supports the following use cases:
Caching and conditional retrieval – Your application can cache API resources and their ETags. Then, when your application requests a stored resource again, it specifies the ETag associated with that resource. If the resource has changed, the API returns the modified resource and the ETag associated with that version of the resource. If the resource has not changed, the API returns an HTTP 304 response (Not Modified
), which indicates that the resource has not changed. Your application can reduce latency and bandwidth usage by serving cached resources in this manner.
The client libraries for Google APIs differ in their support of ETags. For example, the JavaScript client library supports ETags via a whitelist for allowed request headers that includes If-Match
and If-None-Match
. The whitelist allows normal browser caching to occur so that if a resource's ETag has not changed, the resource can be served from the browser cache. The Obj-C client, on the other hand, does not support ETags.
Protecting against inadvertent overwrites of changes – ETags help to ensure that multiple API clients don't inadvertently overwrite each other's changes. When updating or deleting a resource, your application can specify the resource's ETag. If the ETag doesn't match the most recent version of that resource, then the API request fails.
Using ETags in your application provides several benefits:
The API responds more quickly to requests for cached but unchanged resources, yielding lower latency and lower bandwidth usage.Your application will not inadvertently overwrite changes to a resource that were made from another API client.
The Google APIs Client Library for JavaScript supports If-Match
and If-None-Match
HTTP request headers, thereby enabling ETags to work within the context of normal browser caching.
Using gzip
You can also reduce the bandwidth needed for each API response by enabling gzip compression. While your application will need additional CPU time to uncompress API responses, the benefit of consuming fewer network resources usually outweighs that cost.
To receive a gzip-encoded response you must do two things:
Set the Accept-Encoding
HTTP request header to gzip
.
Modify your user agent to contain the string gzip
.
The sample HTTP headers below demonstrate these requirements for enabling gzip compression:
Accept-Encoding: gzip
User-Agent: my program (gzip)
... <看更多>
kind of中文 在 電影『比悲傷更悲傷的故事More Than Blue 』主題曲 - YouTube 的八卦
... <看更多>