Hôm nay tôi muốn chia xẻ với bạn một "bí kiếp" mà tôi đã dùng để "lôi" về các videos từ một user account rồi post lên trang hoctroviet. Rất tiện lợi nếu bạn muốn xem video mà không phải xem quảng cáo từ những trang nhạc như AbbaVEVO chẳng hạn. Bạn cũng có thể đem về rồi góp những bài hay lại thành một tuyển chọn.
Bước 1:Tạo một blog mới, chỉ với mục đích là "lôi" đồ nhà người ta về, rồi chèn đoạn mã này vào đằng trước thẻ "</head>".
<script type='text/javascript'>
var yt = {
nComments : -1,
totCount : 0,
increment : 25,
queryDefault : 25,
web : '',
ytDiv : '',
ytQuery:function(query, ytD, start, increment, func) {
this.web = query;
this.ytDiv = ytD;
var script = document.createElement('script');
script.setAttribute('src', 'http://gdata.youtube.com/feeds/api/videos?q=' + query + '&alt=json'
+ '&callback=' + func );
script.setAttribute('type', 'text/javascript');
document.documentElement.firstChild.appendChild(script);
},
ytsearch:function(query, ytD, start, increment, func) {
this.web = query;
this.ytDiv = ytD;
var script = document.createElement('script');
script.setAttribute('src', 'http://gdata.youtube.com/feeds/api/users/' + query + '/uploads?alt=json&start-index='
+ start + '&max-results=' + increment
+ '&callback=' + func );
script.setAttribute('type', 'text/javascript');
document.documentElement.firstChild.appendChild(script);
},
// getLink return a href link if "name" matches the content inside "a" tags) of the link
getLink: function(entry, name) {
var alturl;
for (var k = 0; k < entry.link.length; k++) {
if (entry.link[k].rel == name)
alturl = entry.link[k].href;
}
return alturl;
},
// getContent gets the content inside an entry of a json object.
getContent: function(entry) {
return entry.content.$t;
},
//
getTitle: function(entry) {
return entry.title.$t;
},
//
getAuthorName: function(entry) {
return entry.author.name.$t;
},
//
getYTLink: function(entry) {
return "http://www.youtube.com/watch?v=" + this.getID(entry);
},
//
getYTLinkPlaylist: function(entry) {
return "http://www.youtube.com/watch?v=" + this.getIDPlaylist(entry);
},
//
getIDPlaylist: function(entry) {
var id = entry.link[0].href.substr(entry.link[0].href.length - 33,entry.link[0].href.length - 22);
return id.substr(0,11);
},
//
getID: function(entry) {
var id = entry.id.$t;
return id.substr(id.length - 11, id.length - 1);
},
// getTotalResults needs the json object, and it'll return the total number of comments (or posts) of the blog.
getTotalResults: function(json) {
return json.feed.openSearch$totalResults.$t;
},
// getStartIndex gets the start index of a search inside an json object.
getStartIndex: function(json) {
return json.feed.openSearch$startIndex.$t;
},
listBatch : function (json, tag) {
var text="";
var p = document.createElement('div');
var ul = document.createElement('ul');
for (var i = 0; i < json.feed.entry.length; i++) {
var entry = json.feed.entry[i];
text = '<li class= "playlist-video-item ">' +
'<a href="http://www.youtube.com/watch?v=' + this.getID(entry) + '" class= "tile-link-block video-tile ">' +
'<span class="playlist-video-item-base-content">' +
'<span class="thumb-container">' +
'<span class="ux-thumb-wrap">' +
' <span class="video-thumb ux-thumb ux-thumb-114 ">' +
'<span class="clip">' +
'<span class="clip-inner">' +
'<img src="http://i2.ytimg.com/vi/' +
this.getID(entry) +
'/default.jpg" ><span class="vertical-align">' +
'</span></span></span></span></span></span>' +
'<span class="video-info"><span class="video-overview"><span class="title video-title " dir="ltr" >' +
this.getTitle(entry) +
'</span></span></span></span>' +
'</a></li>';
var li = document.createElement('li');
var a = document.createElement('a');
a.href = this.getYTLink(entry);
a.target = "_blank";
var txt = document.createTextNode(text);
a.appendChild(txt);
li.appendChild(a);
ul.appendChild(li);
}
p.appendChild(ul);
document.getElementById(tag).appendChild(p);
},
callJson : function(json) {
this.listBatch(json, this.ytDiv);
},
getCo : function(json) {
this.totCount = this.getTotalResults(json);
var count = (this.nComments < 0) ? this.totCount : this.nComments;
var i=1;
while( i <= count ) {
var incr = (count-i < this.increment) ? count-i+1 : this.increment;
this.ytsearch( this.web, this.ytDiv, i, incr, 'yt.callJson');
if (incr==0) incr=incr+1;
i = i+incr;
}
},
Channel:function(query, ytD) {
this.web = query;
this.ytDiv = ytD;
this.ytsearch(query, ytD, 1,20,'yt.getCo');
}
};
</script>
Bước 2: Tạo ra một bài viết mới bằng cách thêm vào đoạn sau. Thế chữ in đậm(AbbaVEVO) với tên (YouTube username) của người mà bạn muốn đem videos của họ về. Nhớ đem vào bằng cách "HTML" chứ đừng bằng cách "chữ đẹp" (compose).
<div id="yt2012">
</div>
<script type='text/javascript'>
yt.Channel( 'AbbaVEVO', 'yt2012');
</script>
</div>
<script type='text/javascript'>
yt.Channel( 'AbbaVEVO', 'yt2012');
</script>
Bước 3: đăng bài lên. Đoạn mã tôi viết sẽ đến username account đó, rồi lôi hết các videos về, 10, 100, 1000 videos nó cũng lôi về hết!
Lấy nội dung của post bằng cách cắt rồi dán vào notepad (Ctrl+A, mở notepad, rồi Ctrl+V)
Bây giờ ta trở qua blog chính.
Trước hết, nếu bạn muốn xem videos ngay trên trang nhà, giống như cách hoctro làm trên trang hoctroviet, thì thêm đoạn mã này trước thẻ </head> :
<!-- Yahoo Media Player -->
<script src='http://webplayer.yahooapis.com/player.js' type='text/javascript'/>
<script src='http://webplayer.yahooapis.com/player.js' type='text/javascript'/>
Sau đó, tạo ra một bài viết mới, rồi chuyển qua dạng viết HTML. Thêm vào <ul></ul> rồi nhét đoạn mã mới thu hoạch vào giữa hai thẻ đó.
Đăng bài lên! Bạn sẽ thấy hết các bài nhạc từ trang muốn lấy về. Thí dụ như trang AbbaVEVO dưới đây.
-
Abba - Chiquitita
-
Abba - When All Is Said And Done
-
Abba - Eagle
-
Abba - I Do, I Do, I Do, I Do, I Do
-
Abba - SOS
-
Abba - Money, Money, Money
-
Abba - The Name Of The Game
-
Abba - The Winner Takes It All
-
Abba - Knowing Me, Knowing You
-
Abba - No Hay A Quien Culpar
-
Abba - Estoy Soñando
-
Abba - Felicidad
-
Abba - Thank You For The Music
-
Abba - Fernando
-
Abba - Waterloo
-
Abba - Waterloo
-
Abba - Gimme! Gimme! Gimme! (A Man After Midnight)
-
Abba - Ring, Ring
-
Abba - Super Trouper
-
Abba - Take A Chance On Me
-
Abba - That's Me
-
Abba - Bang-A-Boomerang
-
Abba - The Day Before You Came
-
Abba - Mamma Mia
-
Abba - One Of Us
-
Abba - Under Attack
-
Abba - Summer Night City
-
Abba - Head Over Heels
-
Abba - On And On And On
-
Abba - Happy New Year
-
Abba - One Man, One Woman
-
Abba - Voulez-Vous
-
Abba - Does Your Mother Know
-
Abba - Dancing Queen
Đây là cách tôi đem videos về trang hoctroviet từ hơn năm nay. Hy vọng bạn sẽ có dịp thử làm theo.
Chúc vui!
Hoctro
3/30/2012
Không có nhận xét nào:
Đăng nhận xét