Hướng dẫn tải phim trên HBO Go , Vie On , Fim+

ngaithon

Active Member
Untitled1.jpg
Untitled2.jpg

Untitled3.jpg

Untitled4.jpg


Phim bộ ở FPT Play có đặc điểm là một tập được chia thành 2 phần: A và B.

- Mở Notepad, copy đoạn code dưới đây.

- Save thành file là: FPTPLAY_PhimBo.cmd

- Nhấp đúp để chạy.

==> Tự động tải 2 phần A và B về và ghép (join) lại thành 1 file MP4 duy nhất.

Ưu điểm: tốc độ tải nhanh như IDM, file cuối cùng tạo ra là MP4, phim mượt mà ở chỗ ghép nối cuối phần A và đầu phần B, không bị khựng như các phương pháp khác).

Yêu cầu:
- Có 2 file sau: N_m3u8DL-CLI_v2.9.7.exeffmpeg.exe đặt trong cùng thư mục với file FPTPLAY_PhimBo.cmd
- Làm phim khác thì sửa dòng set path=D:\Rips\van-cu-thich-em
Mã:
@ echo off

set path=D:\Rips\van-cu-thich-em

echo.

set /p folder=Video Name to be saved as:

title %folder%

echo.

mkdir %path%\%folder%

set /p streamA=Input M3U8 from stream detector (A):

set /p streamB=Input M3U8 from stream detector (B):

N_m3u8DL-CLI_v2.9.7.exe "%streamA%" --workDir %path%\%folder% --saveName A --enableDelAfterDone --enableMuxFastStart

N_m3u8DL-CLI_v2.9.7.exe "%streamB%" --workDir %path%\%folder% --saveName B --enableDelAfterDone --enableMuxFastStart

ffmpeg.exe -i %path%\%folder%\A.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts %path%\%folder%\A.ts

ffmpeg.exe -i %path%\%folder%\B.mp4 -c copy -bsf:v h264_mp4toannexb -f mpegts %path%\%folder%\B.ts

ffmpeg.exe -i "concat:%path%\%folder%\A.ts|%path%\%folder%\B.ts" -c copy -bsf:a aac_adtstoasc %path%\%folder%.mp4

del /q %path%\%folder%\*.ts
cảm ơn bác về bài viết. Cách này áp dụng đc cho vieon không bác
 

ngaithon

Active Member
Hướng dẫn tải phim trên iQiyi

- Chạy Google Chrome, mở trang https://www.iq.com/, chọn phim muốn rip, chọn độ phân giải cao nhất (free thì chỉ tới 720p)
- Nhấn F12 để vào Dev Tool
- Chọn tab Console
- Dán đoạn code dưới đây vào và nhấn Enter
Mã:
javascript:try{var info=playerObject._player._core._movieinfo.originalData.data.program.video;info.forEach(function(item,index){if(item._selected){var m3u8Content="";if(item.m3u8==undefined){try{if(typeof(eval(cmd5x))=="function"){}}catch(e){var req1=new XMLHttpRequest();req1.open("GET","https://static.iqiyi.com/js/common/f6a3054843de4645b34d205a9f377d25.js",false);req1.onload=function(){var script=document.createElement("script");script.text=req1.responseText;document.getElementsByTagName("head")[0].appendChild(script)};req1.send(null)}var fs=item.fs;var content="#EXTM3U\n";fs.forEach(function(fs_i,fs_index){var url=fs_i.l;var prefix="https://data.video.iqiyi.com/videos";var api=prefix+url;try{var t=playerObject._player._core._movieinfo.originalData.data.boss.data.t;api=prefix+url+"&cross-domain=1&t="+t+"&QY00001="+/qd_uid=(\d+)/g.exec(url)[1]+"&ib=4&ptime=0&ibt="+cmd5x(t+/\/(\w{10,})/g.exec(url)[1])}catch(err){}var req=new XMLHttpRequest();req.overrideMimeType("application/json");req.open("GET",api,false);req.onload=function(){var jsonResponse=JSON.parse(req.responseText);content+="#EXTINF:0\n"+jsonResponse["l"]+"\n"};req.send(null)});content+="#EXT-X-ENDLIST";m3u8Content=content}else{m3u8Content=item.m3u8}var blob=new Blob([m3u8Content],{type:"text/plain"});var url=URL.createObjectURL(blob);var title=(document.title.indexOf("-")!=-1?document.title.substring(0,document.title.indexOf("-")):document.title.replace(/\s/,""))+"_"+item.scrsz+"_"+(item.code==2?"H264":"H265")+"_"+document.getElementsByClassName("iqp-time-dur")[0].innerText.replace(/:/,".")+"_"+(item.vsize/1024/1024).toFixed(2)+"MB.m3u8";var aLink=document.createElement("a");aLink.href=url;aLink.download=title;aLink.style.display="none";var event;if(window.MouseEvent){event=new MouseEvent("click")}else{event=document.createEvent("MouseEvents");event.initMouseEvent("click",true,false,window,0,0,0,0,0,false,false,false,false,0,null)}aLink.dispatchEvent(event)}})}catch(err){var info1=playerObject._player.package.engine.adproxy.engine.movieinfo.vidl;info1.forEach(function(item1,index1){if(item1.responseData!=undefined){var info=item1.responseData.data.program.video;info.forEach(function(item,index){if(item._selected){var m3u8Content="";if(item.m3u8==undefined){try{if(typeof(eval(cmd5x))=="function"){}}catch(e){var req1=new XMLHttpRequest();req1.open("GET","https://static.iqiyi.com/js/common/f6a3054843de4645b34d205a9f377d25.js",false);req1.onload=function(){var script=document.createElement("script");script.text=req1.responseText;document.getElementsByTagName("head")[0].appendChild(script)};req1.send(null)}var fs=item.fs;var content="#EXTM3U\n";fs.forEach(function(fs_i,fs_index){var url=fs_i.l;var prefix="https://data.video.iqiyi.com/videos";var api=prefix+url;try{var t=playerObject._player.package.engine.adproxy.engine.movieinfo.current.boss.data.t;api=prefix+url+"&cross-domain=1&t="+t+"&QY00001="+/qd_uid=(\d+)/g.exec(url)[1]+"&ib=4&ptime=0&ibt="+cmd5x(t+/\/(\w{10,})/g.exec(url)[1])}catch(err){console.error(err)}var req=new XMLHttpRequest();req.overrideMimeType("application/json");req.open("GET",api,false);req.onload=function(){var jsonResponse=JSON.parse(req.responseText);content+="#EXTINF:0\n"+jsonResponse["l"]+"\n"};req.send(null)});content+="#EXT-X-ENDLIST";m3u8Content=content}else{m3u8Content=item.m3u8}var blob=new Blob([m3u8Content],{type:"text/plain"});var url=URL.createObjectURL(blob);var title=(document.title.indexOf("-")!=-1?document.title.substring(0,document.title.indexOf("-")):document.title.replace(/\s/,""))+"_"+item.scrsz+"_"+(item.code==2?"H264":"H265")+"_"+document.getElementsByClassName("iqp-time-dur")[0].innerText.replace(/:/,".")+"_"+(item.vsize/1024/1024).toFixed(2)+"MB.m3u8";/*nilaoda*/var aLink=document.createElement("a");aLink.href=url;aLink.download=title;aLink.style.display="none";var event;if(window.MouseEvent){event=new MouseEvent("click")}else{event=document.createEvent("MouseEvents");event.initMouseEvent("click",true,false,window,0,0,0,0,0,false,false,false,false,0,null)}aLink.dispatchEvent(event)}})}})}
- Khi nhấn Enter thì sẽ bật ra 01 cửa sổ Save as... thành file M3U8. Lưu lại trên ổ D: chẳng hạn (ví dụ là: D:\phim.m3u8)
- Chạy chương trình N_m3u8DL-CLI để tải file M3U8 nói trên.
Mã:
N_m3u8DL-CLI_v2.9.7.exe D:\phim.m3u8 --workDir D:\ --saveName phim --enableDelAfterDone --enableMuxFastStart
- Tải phụ đề tiếng Việt tại trang https://downsub.com/. Nếu trang downsub.com không lấy được phụ đề thì sử dụng đoạn code js (chạy trong console) sau:
Mã:
javascript:var tvid=playerObject._player.package.engine.adproxy.engine.movieinfo.tvid;var oData=playerObject._player.package.engine.adproxy.engine.episode.EpisodeStore[tvid].movieInfo.originalData;var prefix=oData.data.dstl;var subUrl=oData.data.program.stl[n-1].webvtt;var title=(document.title.indexOf("-")!=-1?document.title.substring(0,document.title.indexOf("-")):document.title.replace(/\s/,""));prompt(title+" [webvtt]",prefix+subUrl);

Chú ý:
oData.data.program.stl[n-1] trong đó n là vị trí của phụ đề tiếng Việt (tính từ trên xuống dưới)
Ví dụ: Trong phim (hay tập phim) vị trí phụ đề tiếng Việt là 4 (tính từ trên xuống dưới) thì: oData.data.program.stl[3]

{{{ nợ hình tối up }}}
ôi, đa tạ bác, hóng hình của bác ạ
 

ngaithon

Active Member
Sẽ có hướng dẫn và minh họa bằng phim hot đình đám "Cuộc Chiến Thượng Lưu" phần 3 (đang chiếu tập 1 rồi). Đặc điểm của vieon là streaming bằng HLS và bạn phải tìm file M3U8. Bạn sẽ tải về video chất lượng cao nhất có thể (1080p), audio tiếng gốc, audio thuyết minh (hoặc lồng tiếng tùy phim), phụ đề tiếng Việt. Sau đó mux thành file MKV bằng phần mềm MKVToolNix.
dạ. e mong chờ bài hướng dẫn của bác ạ
 

nghiad14

Active Member
Hướng dẫn tải phim trên iQiyi

Kiến thức cơ bản: Làm thế nào mà các trang web có thể phát phim

iQiyi sử dụng HLS và cái bạn đi tìm là link đến tập tin M3U8. Thông thường, tập tin Manifest nằm trên máy chủ và có thể tìm thấy link của nó bằng cách sử dụng Chrome Dev Tool. Tuy nhiên, iQiyi lại không lưu tập tin Manifest trên máy chủ và bằng các kỹ thuật "che code" khiến cho Internet Download Manager (IDM) bó tay. Tập tin Manifest do chính Player của iQiyi trên web browser sinh ra nên để có được tập tin này, chúng ta phải mô phỏng lại cách thức mà Player thực thi để sinh ra tập tin Manifest đó.

- Chạy Google Chrome, mở trang https://www.iq.com/, chọn phim muốn rip, chọn độ phân giải cao nhất (free thì chỉ tới 720p)
- Nhấn F12 để vào Chrome Dev Tool
- Chọn tab Console
- Dán đoạn code dưới đây vào và nhấn Enter
Mã:
javascript:try{var info=playerObject._player._core._movieinfo.originalData.data.program.video;info.forEach(function(item,index){if(item._selected){var m3u8Content="";if(item.m3u8==undefined){try{if(typeof(eval(cmd5x))=="function"){}}catch(e){var req1=new XMLHttpRequest();req1.open("GET","https://static.iqiyi.com/js/common/f6a3054843de4645b34d205a9f377d25.js",false);req1.onload=function(){var script=document.createElement("script");script.text=req1.responseText;document.getElementsByTagName("head")[0].appendChild(script)};req1.send(null)}var fs=item.fs;var content="#EXTM3U\n";fs.forEach(function(fs_i,fs_index){var url=fs_i.l;var prefix="https://data.video.iqiyi.com/videos";var api=prefix+url;try{var t=playerObject._player._core._movieinfo.originalData.data.boss.data.t;api=prefix+url+"&cross-domain=1&t="+t+"&QY00001="+/qd_uid=(\d+)/g.exec(url)[1]+"&ib=4&ptime=0&ibt="+cmd5x(t+/\/(\w{10,})/g.exec(url)[1])}catch(err){}var req=new XMLHttpRequest();req.overrideMimeType("application/json");req.open("GET",api,false);req.onload=function(){var jsonResponse=JSON.parse(req.responseText);content+="#EXTINF:0\n"+jsonResponse["l"]+"\n"};req.send(null)});content+="#EXT-X-ENDLIST";m3u8Content=content}else{m3u8Content=item.m3u8}var blob=new Blob([m3u8Content],{type:"text/plain"});var url=URL.createObjectURL(blob);var title=(document.title.indexOf("-")!=-1?document.title.substring(0,document.title.indexOf("-")):document.title.replace(/\s/,""))+"_"+item.scrsz+"_"+(item.code==2?"H264":"H265")+"_"+document.getElementsByClassName("iqp-time-dur")[0].innerText.replace(/:/,".")+"_"+(item.vsize/1024/1024).toFixed(2)+"MB.m3u8";var aLink=document.createElement("a");aLink.href=url;aLink.download=title;aLink.style.display="none";var event;if(window.MouseEvent){event=new MouseEvent("click")}else{event=document.createEvent("MouseEvents");event.initMouseEvent("click",true,false,window,0,0,0,0,0,false,false,false,false,0,null)}aLink.dispatchEvent(event)}})}catch(err){var info1=playerObject._player.package.engine.adproxy.engine.movieinfo.vidl;info1.forEach(function(item1,index1){if(item1.responseData!=undefined){var info=item1.responseData.data.program.video;info.forEach(function(item,index){if(item._selected){var m3u8Content="";if(item.m3u8==undefined){try{if(typeof(eval(cmd5x))=="function"){}}catch(e){var req1=new XMLHttpRequest();req1.open("GET","https://static.iqiyi.com/js/common/f6a3054843de4645b34d205a9f377d25.js",false);req1.onload=function(){var script=document.createElement("script");script.text=req1.responseText;document.getElementsByTagName("head")[0].appendChild(script)};req1.send(null)}var fs=item.fs;var content="#EXTM3U\n";fs.forEach(function(fs_i,fs_index){var url=fs_i.l;var prefix="https://data.video.iqiyi.com/videos";var api=prefix+url;try{var t=playerObject._player.package.engine.adproxy.engine.movieinfo.current.boss.data.t;api=prefix+url+"&cross-domain=1&t="+t+"&QY00001="+/qd_uid=(\d+)/g.exec(url)[1]+"&ib=4&ptime=0&ibt="+cmd5x(t+/\/(\w{10,})/g.exec(url)[1])}catch(err){console.error(err)}var req=new XMLHttpRequest();req.overrideMimeType("application/json");req.open("GET",api,false);req.onload=function(){var jsonResponse=JSON.parse(req.responseText);content+="#EXTINF:0\n"+jsonResponse["l"]+"\n"};req.send(null)});content+="#EXT-X-ENDLIST";m3u8Content=content}else{m3u8Content=item.m3u8}var blob=new Blob([m3u8Content],{type:"text/plain"});var url=URL.createObjectURL(blob);var title=(document.title.indexOf("-")!=-1?document.title.substring(0,document.title.indexOf("-")):document.title.replace(/\s/,""))+"_"+item.scrsz+"_"+(item.code==2?"H264":"H265")+"_"+document.getElementsByClassName("iqp-time-dur")[0].innerText.replace(/:/,".")+"_"+(item.vsize/1024/1024).toFixed(2)+"MB.m3u8";/*nilaoda*/var aLink=document.createElement("a");aLink.href=url;aLink.download=title;aLink.style.display="none";var event;if(window.MouseEvent){event=new MouseEvent("click")}else{event=document.createEvent("MouseEvents");event.initMouseEvent("click",true,false,window,0,0,0,0,0,false,false,false,false,0,null)}aLink.dispatchEvent(event)}})}})}
- Khi nhấn Enter thì sẽ bật ra 01 cửa sổ Save as... thành file M3U8. Lưu lại trên ổ D: chẳng hạn (ví dụ là: D:\phim.m3u8)
- Chạy một chương trình M3U8 Downloader ưa thích của bạn (ở đây tôi thường dùng N_m3u8DL-CLI) để tải file M3U8 nói trên.
Mã:
N_m3u8DL-CLI_v2.9.7.exe D:\phim.m3u8 --workDir D:\ --saveName phim --enableDelAfterDone --enableMuxFastStart
Untitled1.jpg

- Tải phụ đề tiếng Việt tại trang https://downsub.com/. Nếu trang downsub.com không lấy được phụ đề thì sử dụng đoạn code javascripts (chạy trong console) sau {chắc chắn 100% vì code mô phỏng cách thức mà player thực thi, trừ phi iQiyi thay đổi player khác}:
Mã:
javascript:var tvid=playerObject._player.package.engine.adproxy.engine.movieinfo.tvid;var oData=playerObject._player.package.engine.adproxy.engine.episode.EpisodeStore[tvid].movieInfo.originalData;var prefix=oData.data.dstl;var subUrl=oData.data.program.stl[n-1].webvtt;var title=(document.title.indexOf("-")!=-1?document.title.substring(0,document.title.indexOf("-")):document.title.replace(/\s/,""));prompt(title+" [webvtt]",prefix+subUrl);

Chú ý:
oData.data.program.stl[n-1] trong đó n là vị trí của phụ đề tiếng Việt (tính từ trên xuống dưới). Vì vị trí của phụ đề tiếng Việt của mỗi phim là khác nhau nên không có một con số chính xác được.

Ví dụ: Trong phim (hay tập phim) [Thuyết minh] Như Ý Phương Phi vị trí phụ đề tiếng Việt là 4 (tính từ trên xuống dưới) thì: oData.data.program.stl[3]

Untitled.jpg

Untitled2.jpg


- Lúc này sẽ xuất hiện một cửa sổ có chứa đường link đến file phụ đề. Sử dụng IDM tải link này về ta sẽ có được phụ đề dạng VTT.

- Chuyển từ dạng VTT sang SRT bằng công cụ online https://subtitletools.com/convert-to-srt-online hoặc bằng phần mềm Subtitle Edit.

- Tương tự bạn có thể lấy phụ đề tiếng Anh, tiếng Thái, tiếng Malaysia, tiếng Indonesia v.v...

==> Như vậy, ta đã có video, audio và phụ đề của phim. Đóng gói thành file MKV bằng công cụ MKVToolNix.

Thành quả cuối cùng
Untitled0.jpg
cảm ơn bạn, chúc bạn có ngày tốt lành!
 

adm820

Moderator
Hướng dẫn tải phim trên iQiyi

Kiến thức cơ bản: Làm thế nào mà các trang web có thể phát phim

iQiyi sử dụng HLS và cái bạn đi tìm là link đến tập tin M3U8. Thông thường, tập tin Manifest nằm trên máy chủ và có thể tìm thấy link của nó bằng cách sử dụng Chrome Dev Tool. Tuy nhiên, iQiyi lại không lưu tập tin Manifest trên máy chủ và bằng các kỹ thuật "che code" khiến cho Internet Download Manager (IDM) bó tay. Tập tin Manifest do chính Player của iQiyi trên web browser sinh ra nên để có được tập tin này, chúng ta phải mô phỏng lại cách thức mà Player thực thi để sinh ra tập tin Manifest đó.

- Chạy Google Chrome, mở trang https://www.iq.com/, chọn phim muốn rip, chọn độ phân giải cao nhất (free thì chỉ tới 720p)
- Nhấn F12 để vào Chrome Dev Tool
- Chọn tab Console
- Dán đoạn code dưới đây vào và nhấn Enter
Mã:
javascript:try{var info=playerObject._player._core._movieinfo.originalData.data.program.video;info.forEach(function(item,index){if(item._selected){var m3u8Content="";if(item.m3u8==undefined){try{if(typeof(eval(cmd5x))=="function"){}}catch(e){var req1=new XMLHttpRequest();req1.open("GET","https://static.iqiyi.com/js/common/f6a3054843de4645b34d205a9f377d25.js",false);req1.onload=function(){var script=document.createElement("script");script.text=req1.responseText;document.getElementsByTagName("head")[0].appendChild(script)};req1.send(null)}var fs=item.fs;var content="#EXTM3U\n";fs.forEach(function(fs_i,fs_index){var url=fs_i.l;var prefix="https://data.video.iqiyi.com/videos";var api=prefix+url;try{var t=playerObject._player._core._movieinfo.originalData.data.boss.data.t;api=prefix+url+"&cross-domain=1&t="+t+"&QY00001="+/qd_uid=(\d+)/g.exec(url)[1]+"&ib=4&ptime=0&ibt="+cmd5x(t+/\/(\w{10,})/g.exec(url)[1])}catch(err){}var req=new XMLHttpRequest();req.overrideMimeType("application/json");req.open("GET",api,false);req.onload=function(){var jsonResponse=JSON.parse(req.responseText);content+="#EXTINF:0\n"+jsonResponse["l"]+"\n"};req.send(null)});content+="#EXT-X-ENDLIST";m3u8Content=content}else{m3u8Content=item.m3u8}var blob=new Blob([m3u8Content],{type:"text/plain"});var url=URL.createObjectURL(blob);var title=(document.title.indexOf("-")!=-1?document.title.substring(0,document.title.indexOf("-")):document.title.replace(/\s/,""))+"_"+item.scrsz+"_"+(item.code==2?"H264":"H265")+"_"+document.getElementsByClassName("iqp-time-dur")[0].innerText.replace(/:/,".")+"_"+(item.vsize/1024/1024).toFixed(2)+"MB.m3u8";var aLink=document.createElement("a");aLink.href=url;aLink.download=title;aLink.style.display="none";var event;if(window.MouseEvent){event=new MouseEvent("click")}else{event=document.createEvent("MouseEvents");event.initMouseEvent("click",true,false,window,0,0,0,0,0,false,false,false,false,0,null)}aLink.dispatchEvent(event)}})}catch(err){var info1=playerObject._player.package.engine.adproxy.engine.movieinfo.vidl;info1.forEach(function(item1,index1){if(item1.responseData!=undefined){var info=item1.responseData.data.program.video;info.forEach(function(item,index){if(item._selected){var m3u8Content="";if(item.m3u8==undefined){try{if(typeof(eval(cmd5x))=="function"){}}catch(e){var req1=new XMLHttpRequest();req1.open("GET","https://static.iqiyi.com/js/common/f6a3054843de4645b34d205a9f377d25.js",false);req1.onload=function(){var script=document.createElement("script");script.text=req1.responseText;document.getElementsByTagName("head")[0].appendChild(script)};req1.send(null)}var fs=item.fs;var content="#EXTM3U\n";fs.forEach(function(fs_i,fs_index){var url=fs_i.l;var prefix="https://data.video.iqiyi.com/videos";var api=prefix+url;try{var t=playerObject._player.package.engine.adproxy.engine.movieinfo.current.boss.data.t;api=prefix+url+"&cross-domain=1&t="+t+"&QY00001="+/qd_uid=(\d+)/g.exec(url)[1]+"&ib=4&ptime=0&ibt="+cmd5x(t+/\/(\w{10,})/g.exec(url)[1])}catch(err){console.error(err)}var req=new XMLHttpRequest();req.overrideMimeType("application/json");req.open("GET",api,false);req.onload=function(){var jsonResponse=JSON.parse(req.responseText);content+="#EXTINF:0\n"+jsonResponse["l"]+"\n"};req.send(null)});content+="#EXT-X-ENDLIST";m3u8Content=content}else{m3u8Content=item.m3u8}var blob=new Blob([m3u8Content],{type:"text/plain"});var url=URL.createObjectURL(blob);var title=(document.title.indexOf("-")!=-1?document.title.substring(0,document.title.indexOf("-")):document.title.replace(/\s/,""))+"_"+item.scrsz+"_"+(item.code==2?"H264":"H265")+"_"+document.getElementsByClassName("iqp-time-dur")[0].innerText.replace(/:/,".")+"_"+(item.vsize/1024/1024).toFixed(2)+"MB.m3u8";/*nilaoda*/var aLink=document.createElement("a");aLink.href=url;aLink.download=title;aLink.style.display="none";var event;if(window.MouseEvent){event=new MouseEvent("click")}else{event=document.createEvent("MouseEvents");event.initMouseEvent("click",true,false,window,0,0,0,0,0,false,false,false,false,0,null)}aLink.dispatchEvent(event)}})}})}
- Khi nhấn Enter thì sẽ bật ra 01 cửa sổ Save as... thành file M3U8. Lưu lại trên ổ D: chẳng hạn (ví dụ là: D:\phim.m3u8)
- Chạy một chương trình M3U8 Downloader ưa thích của bạn (ở đây tôi thường dùng N_m3u8DL-CLI) để tải file M3U8 nói trên.
Mã:
N_m3u8DL-CLI_v2.9.7.exe D:\phim.m3u8 --workDir D:\ --saveName phim --enableDelAfterDone --enableMuxFastStart
Untitled1.jpg

- Tải phụ đề tiếng Việt tại trang https://downsub.com/. Nếu trang downsub.com không lấy được phụ đề thì sử dụng đoạn code javascripts (chạy trong console) sau {chắc chắn 100% vì code mô phỏng cách thức mà player thực thi, trừ phi iQiyi thay đổi player khác}:
Mã:
javascript:var tvid=playerObject._player.package.engine.adproxy.engine.movieinfo.tvid;var oData=playerObject._player.package.engine.adproxy.engine.episode.EpisodeStore[tvid].movieInfo.originalData;var prefix=oData.data.dstl;var subUrl=oData.data.program.stl[n-1].webvtt;var title=(document.title.indexOf("-")!=-1?document.title.substring(0,document.title.indexOf("-")):document.title.replace(/\s/,""));prompt(title+" [webvtt]",prefix+subUrl);

Chú ý:
oData.data.program.stl[n-1] trong đó n là vị trí của phụ đề tiếng Việt (tính từ trên xuống dưới). Vì vị trí của phụ đề tiếng Việt của mỗi phim là khác nhau nên không có một con số chính xác được.

Ví dụ: Trong phim (hay tập phim) [Thuyết minh] Như Ý Phương Phi vị trí phụ đề tiếng Việt là 4 (tính từ trên xuống dưới) thì: oData.data.program.stl[3]

Untitled.jpg

Untitled2.jpg


- Lúc này sẽ xuất hiện một cửa sổ có chứa đường link đến file phụ đề. Sử dụng IDM tải link này về ta sẽ có được phụ đề dạng VTT.

- Chuyển từ dạng VTT sang SRT bằng công cụ online https://subtitletools.com/convert-to-srt-online hoặc bằng phần mềm Subtitle Edit.

- Tương tự bạn có thể lấy phụ đề tiếng Anh, tiếng Thái, tiếng Malaysia, tiếng Indonesia v.v...

==> Như vậy, ta đã có video, audio và phụ đề của phim. Đóng gói thành file MKV bằng công cụ MKVToolNix.

Thành quả cuối cùng
Untitled0.jpg



cách làm rất tốt , iqiyi ko mã hóa gì , đa số IDM cũng tải đc .

Tuy vậy đây không phải chất lượng tốt nhất mà iqiyi cung cấp . IQiyi cung cấp các profile 1080p ở dạng H265 (chất lượng nén tốt hơn) và cả 4K . đáng tiếc H265 chỉ có trên app di động của iqiyi . và iqiyi cũng dùng HLS cho H265 . việc tìm ra link để tải cần có kỹ thuật . Hóng các bác share
 

ngaithon

Active Member
Hướng dẫn tải phim trên VieON

Kiến thức cơ bản: Làm thế nào mà các trang web có thể phát phim

VieON sử dụng HLS và cái bạn đi tìm là link đến tập tin M3U8. Thông thường, tập tin Manifest nằm trên máy chủ và có thể tìm thấy link của nó bằng cách sử dụng Chrome Dev Tool. May mắn thay, VieON "không giấu diếm" tập tin Manifest trên máy chủ, những tập tin phân đoạn (segment) cũng không sử dụng phương pháp mã hóa gì (có lẽ để đỡ tốn chi phí đầu tư hệ thống) và họ cũng không có thủ thuật "che code" nên chỉ với Internet Download Manager (IDM) là có thể bắt link để tải về. Tuy nhiên, khi sử dụng IDM để tải thì tập tin mà nó tạo ra (MP4) chỉ có một luồng audio là "tiếng gốc" mà phim thì có thuyết minh (hay lồng tiếng) nữa.

Untitled3.jpg


Để thấy rõ ràng hơn về nội dung một tập tin M3U8 (mục đích để học tập) bạn nên cài thêm một tiện ích mở rộng có tên là HLS + MPEG-DASH Manifest File Viewer (https://chrome.google.com/webstore/detail/hls-+-mpeg-dash-manifest/bogfghabiokccffmhopfppcmkpcemnjo)

Untitled7.jpg


Công cụ sử dụng để tải M3U8 tôi dùng N_m3u8DL-CLI (hãy hỏi bác Google kiếm phần mềm này ở đâu), với các ưu điểm sau:
- Tải nhanh như IDM vì có chế độ tăng tốc tải (chia một file thành nhiều phần, mặc định 32 phần, rồi tải hết từng phần, xong ghép nối lại).
- Tự động chọn video với độ phân giải cao nhất (best) mà phim đó có được.
- Nếu phim có 02 luồng audio (VieON rất hay sử dụng) , cho phép lựa chọn luồng audio để tải.
- Chỉ tải audio nếu muốn, không tải video (tiết kiệm thời gian tải)
- Tải luôn cả phụ đề (không phải mắc công đi tìm link thủ công để tải)

Bước 1: Tìm link M3U8
Nếu bạn đã đọc qua bài Làm thế nào mà các trang web có thể phát phim thì bạn biết là tập tin M3U8 là một tập tin text (nó là bảng kê các đường dẫn đến video, audio và phụ đề của phim)
- Chạy Google Chrome, mở trang vieon.vn, không cần tài khoản VIP bạn cũng có thể xem được một số phim. Ví dụ: tôi chọn phim đình đám Cuộc Chiến Thượng Lưu Phần 3 (tập 1)
Untitled5.jpg

- Bạn sẽ thấy xuất hiện biểu tượng tải của IDM ở góc bên phải, bạn nhấp chuột vào đó và chọn chất lượng cao nhất. IDM sẽ lập tức tải về file MP4. Có thể chọn tới Full HD, dù tôi không có tài khoản VIP.
- Đến đây bạn đã có file MP4 của phim. Khi mở lên xem thử: tôi thấy chất lượng Full HD và audio chỉ là tiếng thuyết minh. Cái tôi còn thiếu là: luồng audio tiếng gốc Korean và phụ đề tiếng Việt.

Untitled6.jpg

- Nhấn F12 để vào Chrome Dev Tool
- Chọn tab Network.
- Ở ô Filter, bạn gõ vào: playlist.m3u8
- Nếu chưa thấy gì thì cứ nhấn F5 để refesh lại trang.
- Nhấn phải chuột vào file playlist.m3u8 được tìm thấy ở phần vùng Name, chọn "Open in new tab"
- Vì bạn đã cài tiện ích mở rộng có tên là HLS + MPEG-DASH Manifest File Viewer nên trong tab mới mở ra bạn sẽ xem được nội dung file playlist.m3u8 rất rõ ràng. Ở đây, mục đích của chúng ta là học tập nên bạn dành một ít thời gian để xem qua các chú thích trong hình rất rõ ràng, phần nào là phụ đề, phần nào là audio (thuyết minh, tiếng gốc), phần nào là video (360p, 480p, 720p, 1080p)

Untitled4.jpg


Bước 2: Tải luồng audio tiếng Korean và phụ đề
Đến đây bạn đã có file MP4 của phim, chất lượng Full HD và audio thuyết minh, link đến file playlist.m3u8
- Chạy phần mềm N_m3u8DL-CLI
Mã:
N_m3u8DL-CLI_v2.9.7.exe "https://playlist-free.vieon.vn/playlist/content/vieon/dec1a49f-bde3-4328-a7f2-a6e76a40b2ef/1623143923000/9f425b2f223f4a17332660a89928ad34/playlist.m3u8?model=&pkgs=&platform=web&uid=anonymous_59426c29a6062c7dc19d655ffd3da539-deae75ec460d53ae394e7cd0b5be5b0e-1623053657&user_type=0&sn=hni-vnpt-002&rid=8" --enableDelAfterDone --enableAudioOnly --enableMuxFastStart
(nhớ có tham số --enableAudioOnly nhé, tham số này chỉ ra chỉ tải phần audio)

Untitled8.jpg


- Vì trong nội dung file M3U8 có 2 luồng audio nên sẽ có bảng lựa chọn:
[0] Thuyết minh
[1] Tiếng gốc
Vì bạn đang cần luồng audio tiếng gốc (tiếng Korean) nên bạn nhập số 1 nhé
- Đợi một xíu, vì chỉ tải audio nên file tải về rất nhanh. Trong thư mục Downloads bạn sẽ thấy có 02 file: 01 file là audio tiếng gốc, 01 file là phụ đề.

Untitled9.jpg


- Mặc dù file phụ đề có ghi là .srt nhưng thực chất nó vẫn là dạng VTT nên bạn cần phần mềm Subtitle Edit để chuyển nó sang định dạng SRT nhé (hãy hỏi bác Google kiếm phần mềm này ở đâu). Chỉ việc Open file và Save as... (chọn đầu ra là SubRip .srt)

Untitled10.jpg


Bước 3: Mux tất cả những gì đã tải về được thành một file MKV hoàn chỉnh
Đến đây bạn đã có file MP4 của phim, chất lượng Full HD và audio thuyết minh, file M4A audio tiếng gốc, file SRT phụ đề tiếng Việt.
- Sử dụng phần mềm MKVToolNix và input tất cả những gì có được vào và nhấn Start để tạo thành file MKV hoàn chỉnh.

Thành quả cuối cùng (không cần tài khoản VIP nhé)
Untitled11.jpg

Untitled12.jpg
bài viết thật sự rất hay. cảm ơn bác rất nhiều.
cái chỗ tải audio only thì coppy nguyên đoạn code này vô phần mềm N_m3u8DL-CLI_v2.9.7.exe luôn à bác

N_m3u8DL-CLI_v2.9.7.exe "https://playlist-free.vieon.vn/play...-1623053657&user_type=0&sn=hni-vnpt-002&rid=8" --enableDelAfterDone --enableAudioOnly --enableMuxFastStart
- thay chữ màu xanh bằng link m3u8 vừa tìm được
- thêm "--enableAudioOnly" để tải âm thanh
Em có coppy đoạn code của bác dán hết vô luôn nhưng phần mềm tự động thoát và ra lỗi sau:
LOG 2021/06/07
Save Path: D:\n_m3u8DL\Logs
Task Start: 2021/06/07 23:31:21
Task CommandLine: "D:\n_m3u8DL\N_m3u8DL-CLI_v2.9.7.exe"

23:31:21.967 / (NORMAL) Start Parsing N_m3u8DL-CLI_v2.9.7.exe
23:31:21.987 / (NORMAL) Parsing M3u8 Content
23:31:22.018 / (ERROR) Invalid M3u8 (NOT Contain #EXTM3U)
 

ngaithon

Active Member
Cái lỗi đó là do bạn đã đúp vào file exe để chạy, lúc này bạn đã ở trong môi trường N_m3u8DL-CLI rồi nên bạn chỉ cần nhập như sau để cung cấp các tham số cho chương trình
Mã:
"https://playlist-free.vieon.vn/playlist/content/vieon/dec1a49f-bde3-4328-a7f2-a6e76a40b2ef/1623143923000/9f425b2f223f4a17332660a89928ad34/playlist.m3u8?model=&pkgs=&platform=web&uid=anonymous_59426c29a6062c7dc19d655ffd3da539-deae75ec460d53ae394e7cd0b5be5b0e-1623053657&user_type=0&sn=hni-vnpt-002&rid=8" --enableDelAfterDone --enableAudioOnly --enableMuxFastStart
Bạn nhập y chang như hướng dẫn, tức là "N_m3u8DL-CLI_v2.9.7.exe" là tham số cho đường dẫn M3U8 nên chương trình không nhận ra, báo LỖI là đúng rồi.

Mình hướng dẫn các code chạy dòng lệnh đều xuất phát từ click nút Start -> Run, hoặc nhấn tổ hợp phím tắt (Window+R). Nhập: cmd để mở cửa sổ dòng lệnh.

Nếu bạn thấy khó khăn khi phải chạy dòng lệnh thì hãy sử dụng Simple GUI của phần mềm.

fe88177e8a78e31fc9b4457d8848377a.png

105625707-f892a500-5e65-11eb-80c6-f32f9b5af842.png
phần mềm này trực quan hơn đó bác. 1 lần tải ra được 3 file, khá hay. Mấy cái tuỳ chọn còn lại không cần biết cũng được đúng ko bác.
Với bác cho e hỏi thêm 1 vấn đề. Mỗi tài khoản fshare up đc 300 gb (50gb an toàn và 250gb không an toàn). Sao nhiều bô lão có 1 tài khoản mà chứa rất nhiều. e xin được thông não ạ
Untitled.jpg
 
Chỉnh sửa lần cuối:

adm820

Moderator
phần mềm này trực quan hơn đó bác. 1 lần tải ra được 3 file, khá hay. Mấy cái tuỳ chọn còn lại không cần biết cũng được đúng ko bác.
Với bác cho e hỏi thêm 1 vấn đề. Mỗi tài khoản fshare up đc 300 gb (50gb an toàn và 250gb không an toàn). Sao nhiều bô lão có 1 tài khoản mà chứa rất nhiều. e xin được thông não ạ
Untitled.jpg


Vì họ xài gói storage ( trả phí ) hoặc xài gói promo / promo plus ( cung cấp free cho những ai làm uploader / đối tác của Fshare )
 

ngaithon

Active Member
Vì họ xài gói storage ( trả phí ) hoặc xài gói promo / promo plus ( cung cấp free cho những ai làm uploader / đối tác của Fshare )
đăng ký uploader của fshare dễ không bác. em tìm mãi mà không có thông tin cụ thể về vấn đề này
 

cuong123

Well-Known Member
Hướng dẫn tải phim trên Mango TV

Không dễ dàng như VieON, hôm nay chúng ta gặp một trang web sử dụng kỹ thuật chống download file m3u8 tạm gọi tên là kỹ thuật 403 Forbidden

Mango TV là một trang streaming phim đang dần thâm nhập vào thị trường Việt Nam. Ngoài tiếng bản địa thì trang web cũng đã có ngôn ngữ Tiếng Việt bên cạnh ngôn ngữ Tiếng Anh, Tiếng Thái, Bahasa Malaysia, Bahasa Indonesia

Mango TV sử dụng HLS và với kiến thức cơ bản đã trải nghiệm trong những bài thực hành vừa qua thì trong đầu bạn lóe lên là "đi tìm link đến tập tin m3u8".

- Chạy Google Chrome, mở trang https://mgtv.com/, chọn phim muốn xem, chọn độ phân giải cao nhất (free thì chỉ tới 720p)
- Nhấn F12 để vào Chrome Dev Tool
- Chọn tab Network
- Ở ô Filter, bạn gõ vào: m3u8
- Nếu chưa thấy gì trong vùng Name thì cứ nhấn F5 để refesh lại trang.
- Lúc này bạn đã thấy file m3u8 của phim rồi đó.
- Nhấn phải chuột vào tập tin m3u8 và chọn "Open in new tab".
- Ố là la..., chuyện gì thế này? Không như ở VieON nội dung file m3u8 hiện ra ngay, còn ở đây là:

Untitled4.jpg


Mã:
403 Forbidden
You don't have permission to access the URL on this server.
Powered by Tengine

Nhờ bác Google dịch hộ thì nôm na thế này
Mã:
403 bị cấm
Bạn không có quyền truy cập URL trên máy chủ này.
Được cung cấp bởi Tengine

Khó quá, bỏ qua đi. Tạm thời đi tìm link phụ đề vậy

- Muốn lấy phụ đề nào thì trên phim chọn phụ đề đó nhé. Lúc đó player mới tải phụ đề đó về máy
- Ở ô Filter, bạn gõ vào: SRT
- Nếu chưa thấy gì trong vùng Name thì cứ nhấn F5 để refesh lại trang.
- Lúc này bạn đã thấy file phụ đề của phim rồi đó.
- Phụ đề này dạng SubRip (.srt) nên không cần phải qua bước chuyển đổi nữa nhé.
- Tải về thôi. Xong phần phụ đề, cứ để đó chờ mux vào phim.

Bây giờ, thử nhờ IDM thần thánh xem có bắt link được không?

Untitled0.jpg

Untitled1.jpg


Đúng là IDM thần thánh có khác. Đã bắt được link và tải tuốt.

Thử một chương trình M3U8 Downloader là youtube-dl.exe xem sao?
Mã:
youtube-dl.exe "https://pcvideotestws.titan.mgtv.com/c1/2021/05/05_0/1A06B4FBD019AA89697E0B173C45B94E_20210505_1_1_744_mp4/EF45545E18155223EACD4E61EE8A1568.m3u8?arange=0&pm=5DPAk9CUxfsKBF9X89msALGHGoDCtxLp~8rdyesX2uOZQDqmFWS3iu3oVxoJG6BNzA1B_XU6zopOsKiyuJ~pOZApnY~BFGkUlP2rcRq9hjel5Fo2dCMerhBh9KzVaGPU0VptW7UB5AtV22sqjubBVbyAknm2XUpe4wZYwevRwkolu1vt91YQ7KoFamxtZQTONnyv_zA_~JX0tEp7z_2Wlgzs81wW4YEVbQhESgqOA2hcOQyMRAxyyLTfS7hoJHt9IbJn8Rv9PIyewcgPOjgJqT54ekxHDCppIPsQIchjMBBhpB~qD7TA0AWnu93VXJdQ~SR8IDaD4IzSwhpy_vNSM50zzkVYRHEiVI8poQl2arnvgFKOgE3JZNGlsZop15Jeq0l3Uud3ja6jj1Iv5rsZw8FhSXdnB~0JyHLZ7P4x6KcBZkLjeGSFqk0krBiNR5RknyroA3D0B5xg4rTEgNxE6RZ2EIz5Tpnd2qphLFE5nml079hvvimgJg--&mr=4E~Aw~36kRsdSHOg5~NnQ3U20dfnRvvsI8HGdEmn2WoyAMnRoxWYwiq9k1QJe7dTvO4bKzqq9jmDguE18Wlif5lvQxw_6jj4YbaWHm_TkQR_70gigDdBgWR5B3JyjwgS1FyZY6JuvUQq0Ueio023o_NC8~BIy70IXIsWUNehSioJ4M4J7BJ1PZXr4riuDiX5iO1YQmYx~WCuPIMFB57EIu3MVHjybbjB8I394Dk1Ov2bLR_bJuvDsj3_hE~gJOc7tBCDbBsZ5k02KcdpXv4e68VCq6d_sNf5BMcL0USnMZbS7nD~G0PBHSd~WaDhhFuZQmkRyb8ouj8xJopZQRYX7Zx9MVINO1fP6G_ibyisXYBreidtP0PfoVUyxEvjx3iKFGJrH7qDW4QBkmJyx2LoX8yYj8oT5lFhRaleMK6uuGMQZzMfP_NAzrzZyRfG46bejWoBRwDjxSWbUJdwMtfIMoHv0hIUymO4LbY4mZOdu9u~PQ9K5KS_L34UDb4Rbg6yRknH6pifjTgsPSjok4o2NK3tNoCOdojrB0J~ciPScPYnjhfUfGJPeN1kpJL9xzmQ8UPndbeg6c7BK4yht5AAKCIE0qIpoJy_ZvfMgvxMfEGXlkTboCAmR3htib4~EXAV5ewrHSgfAcZRtiRACvPb~pac4AX6HMu9alhvxbcyirvOrfMPEaoyBmO9YrYKIEfNL9yrI56QXkCU4ATdBNsykK0PHXCei_lyH8kq_CEGjgfGOlTt1ymDwkf2d0DMOY2vPOKsnzPF4airrf1EBiLVpUEdXKxSMk~OTENNgEuoSTY-&vcdn=0&scid=25060&cpno=6i06rp&ruid=f07c4b0093334fc9"

Untitled3.jpg


À, đã gặp mã lỗi 403 rồi nhá.

Với kiến thức đã được học ở bài "Làm thế nào mà các trang web có thể phát phim" thì video player của web browser phải truy cập được URL (không bị cấm forbidden) thì mới đọc được file m3u8 và phát phim lên trang web. Vậy bây giờ chúng ta sẽ giả làm player của Mango TV và gửi yêu cầu (request) đến server và server sẽ hồi đáp (response) nội dung file m3u8, như vậy mới có thể qua mặt kỹ thuật chống download này được.

Vì với mục đích học tập và tìm hiểu nên tôi cài phần mềm Fiddler (https://www.telerik.com/fiddler/fiddler-classic), phần mềm này có thể tạo một URL request giả danh Mango TV player để gửi đến server rồi đợi server kiểm tra. Nếu là mã 200 thì OK "mày đúng là player của tao rồi, tao cho mày file m3u8 để mày phát lên web cho khách hàng xem". Ngược lại là mã 403 "mày không phải là player đâu, lấy file m3u8 của tao để làm gì? Tao cấm cửa"

Untitled5.jpg


Untitled6.jpg


Untitled7.jpg


Chạy lại youtube-dl.exe ở trên nhưng có thêm một tham số (--referer "https://www.mgtv.com") để đánh lừa server.

Mã:
youtube-dl.exe --referer "https://www.mgtv.com" "https://pcvideotestws.titan.mgtv.com/c1/2021/05/05_0/1A06B4FBD019AA89697E0B173C45B94E_20210505_1_1_744_mp4/EF45545E18155223EACD4E61EE8A1568.m3u8?arange=0&pm=5DPAk9CUxfsKBF9X89msALGHGoDCtxLp~8rdyesX2uOZQDqmFWS3iu3oVxoJG6BNzA1B_XU6zopOsKiyuJ~pOZApnY~BFGkUlP2rcRq9hjel5Fo2dCMerhBh9KzVaGPU0VptW7UB5AtV22sqjubBVbyAknm2XUpe4wZYwevRwkolu1vt91YQ7KoFamxtZQTONnyv_zA_~JX0tEp7z_2Wlgzs81wW4YEVbQhESgqOA2hcOQyMRAxyyLTfS7hoJHt9IbJn8Rv9PIyewcgPOjgJqT54ekxHDCppIPsQIchjMBBhpB~qD7TA0AWnu93VXJdQ~SR8IDaD4IzSwhpy_vNSM50zzkVYRHEiVI8poQl2arnvgFKOgE3JZNGlsZop15Jeq0l3Uud3ja6jj1Iv5rsZw8FhSXdnB~0JyHLZ7P4x6KcBZkLjeGSFqk0krBiNR5RknyroA3D0B5xg4rTEgNxE6RZ2EIz5Tpnd2qphLFE5nml079hvvimgJg--&mr=4E~Aw~36kRsdSHOg5~NnQ3U20dfnRvvsI8HGdEmn2WoyAMnRoxWYwiq9k1QJe7dTvO4bKzqq9jmDguE18Wlif5lvQxw_6jj4YbaWHm_TkQR_70gigDdBgWR5B3JyjwgS1FyZY6JuvUQq0Ueio023o_NC8~BIy70IXIsWUNehSioJ4M4J7BJ1PZXr4riuDiX5iO1YQmYx~WCuPIMFB57EIu3MVHjybbjB8I394Dk1Ov2bLR_bJuvDsj3_hE~gJOc7tBCDbBsZ5k02KcdpXv4e68VCq6d_sNf5BMcL0USnMZbS7nD~G0PBHSd~WaDhhFuZQmkRyb8ouj8xJopZQRYX7Zx9MVINO1fP6G_ibyisXYBreidtP0PfoVUyxEvjx3iKFGJrH7qDW4QBkmJyx2LoX8yYj8oT5lFhRaleMK6uuGMQZzMfP_NAzrzZyRfG46bejWoBRwDjxSWbUJdwMtfIMoHv0hIUymO4LbY4mZOdu9u~PQ9K5KS_L34UDb4Rbg6yRknH6pifjTgsPSjok4o2NK3tNoCOdojrB0J~ciPScPYnjhfUfGJPeN1kpJL9xzmQ8UPndbeg6c7BK4yht5AAKCIE0qIpoJy_ZvfMgvxMfEGXlkTboCAmR3htib4~EXAV5ewrHSgfAcZRtiRACvPb~pac4AX6HMu9alhvxbcyirvOrfMPEaoyBmO9YrYKIEfNL9yrI56QXkCU4ATdBNsykK0PHXCei_lyH8kq_CEGjgfGOlTt1ymDwkf2d0DMOY2vPOKsnzPF4airrf1EBiLVpUEdXKxSMk~OTENNgEuoSTY-&vcdn=0&scid=25060&cpno=6i06rp&ruid=f07c4b0093334fc9"

Kết quả mỹ mãn nhé. youtube-dl.exe đã tiến hành tải về.

Untitled8.jpg


Phim: Mãi Mãi Bên Nhau
Mã:
https://w.mgtv.com/b/369145/11857725.html?fpa=27660&fpos=2&lastp=ch_home

M3U8 URL
Mã:
https://pcvideotestws.titan.mgtv.com/c1/2021/05/05_0/1A06B4FBD019AA89697E0B173C45B94E_20210505_1_1_744_mp4/EF45545E18155223EACD4E61EE8A1568.m3u8?arange=0&pm=5DPAk9CUxfsKBF9X89msALGHGoDCtxLp~8rdyesX2uOZQDqmFWS3iu3oVxoJG6BNzA1B_XU6zopOsKiyuJ~pOZApnY~BFGkUlP2rcRq9hjel5Fo2dCMerhBh9KzVaGPU0VptW7UB5AtV22sqjubBVbyAknm2XUpe4wZYwevRwkolu1vt91YQ7KoFamxtZQTONnyv_zA_~JX0tEp7z_2Wlgzs81wW4YEVbQhESgqOA2hcOQyMRAxyyLTfS7hoJHt9IbJn8Rv9PIyewcgPOjgJqT54ekxHDCppIPsQIchjMBBhpB~qD7TA0AWnu93VXJdQ~SR8IDaD4IzSwhpy_vNSM50zzkVYRHEiVI8poQl2arnvgFKOgE3JZNGlsZop15Jeq0l3Uud3ja6jj1Iv5rsZw8FhSXdnB~0JyHLZ7P4x6KcBZkLjeGSFqk0krBiNR5RknyroA3D0B5xg4rTEgNxE6RZ2EIz5Tpnd2qphLFE5nml079hvvimgJg--&mr=4E~Aw~36kRsdSHOg5~NnQ3U20dfnRvvsI8HGdEmn2WoyAMnRoxWYwiq9k1QJe7dTvO4bKzqq9jmDguE18Wlif5lvQxw_6jj4YbaWHm_TkQR_70gigDdBgWR5B3JyjwgS1FyZY6JuvUQq0Ueio023o_NC8~BIy70IXIsWUNehSioJ4M4J7BJ1PZXr4riuDiX5iO1YQmYx~WCuPIMFB57EIu3MVHjybbjB8I394Dk1Ov2bLR_bJuvDsj3_hE~gJOc7tBCDbBsZ5k02KcdpXv4e68VCq6d_sNf5BMcL0USnMZbS7nD~G0PBHSd~WaDhhFuZQmkRyb8ouj8xJopZQRYX7Zx9MVINO1fP6G_ibyisXYBreidtP0PfoVUyxEvjx3iKFGJrH7qDW4QBkmJyx2LoX8yYj8oT5lFhRaleMK6uuGMQZzMfP_NAzrzZyRfG46bejWoBRwDjxSWbUJdwMtfIMoHv0hIUymO4LbY4mZOdu9u~PQ9K5KS_L34UDb4Rbg6yRknH6pifjTgsPSjok4o2NK3tNoCOdojrB0J~ciPScPYnjhfUfGJPeN1kpJL9xzmQ8UPndbeg6c7BK4yht5AAKCIE0qIpoJy_ZvfMgvxMfEGXlkTboCAmR3htib4~EXAV5ewrHSgfAcZRtiRACvPb~pac4AX6HMu9alhvxbcyirvOrfMPEaoyBmO9YrYKIEfNL9yrI56QXkCU4ATdBNsykK0PHXCei_lyH8kq_CEGjgfGOlTt1ymDwkf2d0DMOY2vPOKsnzPF4airrf1EBiLVpUEdXKxSMk~OTENNgEuoSTY-&vcdn=0&scid=25060&cpno=6i06rp&ruid=f07c4b0093334fc9
 
Chỉnh sửa lần cuối:
Bên trên