Browse Source

add replace compressed video service

feature/new_bilibili_and_instagram_sxs20191126
shixuesen 4 years ago
parent
commit
5c6b417b72
22 changed files with 659 additions and 71 deletions
  1. +1
    -0
      .idea/php.xml
  2. +4
    -4
      app/Console/Commands/BiliVideoCode.php
  3. +2
    -1
      app/Console/Commands/ComicsScrape.php
  4. +9
    -0
      app/Console/Commands/CommonTest.php
  5. +7
    -3
      app/Console/Commands/HandBrakeCommand.php
  6. +9
    -3
      app/Console/Commands/InstagramScrape.php
  7. +2
    -2
      app/Console/Commands/RenameTest.php
  8. +1
    -0
      app/Console/Kernel.php
  9. +1
    -1
      app/Http/Controllers/WeiboController.php
  10. +45
    -17
      app/Services/BilibiliServiceV2.php
  11. +59
    -5
      app/Services/ComicsService.php
  12. +49
    -4
      app/Services/CommonService.php
  13. +2
    -2
      app/Services/HandBrakeService.php
  14. +83
    -6
      app/Services/InstagramService.php
  15. +16
    -11
      app/Services/MM24Service.php
  16. +16
    -6
      app/Services/NewNvshenService.php
  17. +204
    -0
      app/Services/ReplaceCompressedVideoService.php
  18. +12
    -1
      app/Services/TujiguService.php
  19. +13
    -4
      app/Services/XiurenjiService.php
  20. +1
    -0
      composer.json
  21. +72
    -1
      composer.lock
  22. +51
    -0
      fail.log

+ 1
- 0
.idea/php.xml View File

@ -165,6 +165,7 @@
<path value="$PROJECT_DIR$/vendor/symfony/deprecation-contracts" />
<path value="$PROJECT_DIR$/vendor/james-heinrich/getid3" />
<path value="$PROJECT_DIR$/vendor/symfony/http-client-contracts" />
<path value="$PROJECT_DIR$/vendor/ps/image-optimizer" />
</include_path>
</component>
<component name="PhpProjectSharedConfiguration" php_language_level="7.1" />


+ 4
- 4
app/Console/Commands/BiliVideoCode.php View File

@ -49,12 +49,12 @@ class BiliVideoCode extends Command
// $bilibili->insertDBTest();exit;
// $bilibili->queryPlayList();
$bilibili->queryUpVideoList(10278125);
// $bilibili->queryUpVideoList(10278125);
// exit;
$bilibili->queryDBCollectionList();
// $bilibili->queryDBCollectionList();
// exit;
// $bilibili->queryForVideoParts();
$bilibili->queryForVideoParts();
$bilibili->compareAndDownloadUpVideos();
// exit;
$bilibili->compareAndDownloadCollectionVideos();
@ -63,7 +63,7 @@ class BiliVideoCode extends Command
// $bilibili->queryLocalUpVideoList();
// $bilibili->queryForVideoParts();
// $bilibili->queryDBCollectionList();
$bilibili->checkVideoHasDownload();
// $bilibili->checkVideoHasDownload();
// echo is_dir("/Volumes/Seagate Backup Plus Drive/Video/bilibili/少女时代");
}


+ 2
- 1
app/Console/Commands/ComicsScrape.php View File

@ -39,7 +39,8 @@ class ComicsScrape extends Command
public function handle()
{
$comic = new ComicsService();
$comic->scrapeAllAlbum("https://www.003004.com/papa");
// $comic->scrapeAllAlbum("https://www.003004.com/papa");
$comic->processHomeBusinessPeople("http://homebusinesspeople.com/detail/1829683o344697.html");
//
}
}

+ 9
- 0
app/Console/Commands/CommonTest.php View File

@ -41,6 +41,7 @@ class CommonTest extends Command
*/
public function handle()
{
$this->testAnnie();exit;
$commonScrapeService = new CommonScrapeService();
$commonScrapeService->scrapeAlbum();exit;
dump(FileUtils::scanDuplicateDir("/Volumes/intel660p/image/xg/ycc"));exit;
@ -61,4 +62,12 @@ class CommonTest extends Command
print_r($p2);
//
}
public function testAnnie()
{
$result = shell_exec("annie -i av417536178");
echo $result;
preg_match_all("#\[(\d+)\]\s+-+\s+Quality:\s+[\S]+\s+720P#", $result, $match);
dump($match);
}
}

+ 7
- 3
app/Console/Commands/HandBrakeCommand.php View File

@ -3,6 +3,7 @@
namespace App\Console\Commands;
use App\Services\HandBrakeService;
use App\Services\ReplaceCompressedVideoService;
use Illuminate\Console\Command;
class HandBrakeCommand extends Command
@ -12,7 +13,7 @@ class HandBrakeCommand extends Command
*
* @var string
*/
protected $signature = 'handle:video';
protected $signature = 'handle:video {path}';
/**
* The console command description.
@ -39,8 +40,11 @@ class HandBrakeCommand extends Command
public function handle()
{
//
$service = new HandBrakeService();
$service->processDir();
$path = $this->argument("path");
echo $path;
// $service = new HandBrakeService();
$service = new ReplaceCompressedVideoService();
$service->processDir(trim($path));
// $service->processUnCompleteDir();
}
}

+ 9
- 3
app/Console/Commands/InstagramScrape.php View File

@ -13,7 +13,7 @@ class InstagramScrape extends Command
*
* @var string
*/
protected $signature = 'ins:like';
protected $signature = 'ins:like {start}';
/**
* The console command description.
@ -39,10 +39,16 @@ class InstagramScrape extends Command
*/
public function handle()
{
// $dir = "/aaa/bbb";
// $dir = str_replace("/", "", $dir);
// echo $dir;exit;
//
$start = $this->argument('start');
// echo $start;exit;
$ins = new InstagramService();
$ins->scrapeUsers();
$ins->scrapeLikedUsers();exit;
$ins->scrapeUsers($start);
$ins->scrapeLikedUsers();
$ins->scrapeCollection();exit;
// $ins->getUserNameById();
// $ins->queryFollowUsers();
// $ins->commonRequest();


+ 2
- 2
app/Console/Commands/RenameTest.php View File

@ -40,8 +40,8 @@ class RenameTest extends Command
{
//
$rename = new RenameService();
// $rename->rename("/Volumes/WD/tmp/尤果网/尤G网", "尤果网-");
$rename->rename("/Volumes/Backup/images/写真/【写真】Shika小鹿鹿 – 69套图合集", "");
// $rename->rename("/Volumes/WD/tmp/写真图/猫九", "猫九-");
$rename->rename("/Volumes/Backup/images/写真/pcBack/3/", "");
// $rename->rename();
// $rename->mvFiles("/Users/shixuesen/Documents/tmp/秀人旗下《MFStar模范学院》套图及视频写真-TLoB/视频/");
}


+ 1
- 0
app/Console/Kernel.php View File

@ -17,6 +17,7 @@ use Illuminate\Foundation\Console\Kernel as ConsoleKernel;
use App\Services\InstagramService;
use Illuminate\Support\Facades\Log;
date_default_timezone_set('PRC');
class Kernel extends ConsoleKernel
{


+ 1
- 1
app/Http/Controllers/WeiboController.php View File

@ -32,7 +32,7 @@ class WeiboController extends Controller
// for( $i = 341; $i >= 1 ; $i-- )
// $url[] = 'https://m.weibo.cn/api/container/getIndex?containerid=1076035893812490&openApp=0&page='.$i;
for( $i = 12; $i >= 1 ; $i-- )
for( $i = 20; $i >= 1 ; $i-- )
$url[] = 'https://m.weibo.cn/api/container/getIndex?containerid=230259&openApp=0&page='.$i;
// for ($i = 5; $i >= 1; $i--) {
// $url[] = 'https://m.weibo.cn/feed/group?gid=4423532052076817&&page=' . $i;


+ 45
- 17
app/Services/BilibiliServiceV2.php View File

@ -238,6 +238,7 @@ class BilibiliServiceV2
public function compareAndDownloadUpVideos($isAll = false)
{
$list = BilibiliUpVideos::all();
// $list = array_slice($list->all(), 15, 5);
foreach ($list as $item) {
dump("当前 up名称是: " . $item["up_name"] . "\n");
if ($item["is_downloaded"] == 1) {
@ -251,15 +252,26 @@ class BilibiliServiceV2
->where('created_at', '>=', date("Y-m-d H:i:s", strtotime("-1 week")))->get();
}
$videoList = [];
$videoPartsMap = [];
if (count($vItems) > 0) {
foreach ($vItems as $vItem) {
if ($vItem["is_download"] == 1 && $vItem["is_downloaded"] == 0) {
$videoList[] = "av" . $vItem["aid"];
// $videoList[] = "av" . $vItem["aid"];
$videoPartsMap = [];
$videoPartsMap[$vItem["aid"]] = $vItem["total_parts"];
echo "当前 up名称是: " . $item["up_name"] . " 当前下载的视频 title: " . $vItem["title"] . " 当前下载的视频 aid 是:" . $vItem["aid"] . "\n" ;
Log::info("当前 up名称是: " . $item["up_name"] . " 当前下载的视频 title: " . $vItem["title"] . " 当前下载的视频 aid 是:" . $vItem["aid"]);
if ($item['mid'] == 27174777) {
$this->downloadBSitePlaylist($videoList, "/Volumes/WD/tmp/bilibili/", "女团");
$this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/", "女团");
} else if ($item["mid"] == 391316322) {
$this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/", "娜娜");
} else if ($item["mid"] == 396501206) {
$this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/", "佳佳");
} else {
$this->downloadBSitePlaylist($videoList, $this->baseDir . "bilibili/", $item['up_name']);
$this->partDownloadBSitePlaylist($videoPartsMap, $this->baseDir . "bilibili/", $item['up_name']);
}
$vItem["is_downloaded"] = 1;
$vItem->save();
}
}
}
@ -276,6 +288,7 @@ class BilibiliServiceV2
}
Log::info("schedule compareAndDownloadCollectionVideos current collection is {$item['title']}, started at: " . date("Y-m-d H:i:s"));
$videoList = [];
$videoPartsMap = [];
if ($isAll) {
$vItems = BilibiliVideos::where("collection_mid", $item["media_id"])->get();
} else {
@ -287,21 +300,27 @@ class BilibiliServiceV2
if (count($vItems) > 0) {
foreach ($vItems as $vItem) {
if ($vItem["is_download"] == 1 && $vItem["is_downloaded"] == 0) {
$videoList[] = "av" . $vItem["aid"];
// $videoList[] = "av" . $vItem["aid"];
$videoPartsMap = [];
$videoPartsMap[$vItem["aid"]] = $vItem["total_parts"];
echo "收藏夹名称是: " . $item["title"] . " 当前下载的视频 title: " . $vItem["title"] . " 当前下载的视频 aid 是:" . $vItem["aid"] . "\n" ;
Log::info("收藏夹名称是: " . $item["title"] . " 当前下载的视频 title: " . $vItem["title"] . " 当前下载的视频 aid 是:" . $vItem["aid"]);
if ($item['title'] == "默认收藏夹") {
dump("xxxxxxxxxxxx----------------");
$this->downloadBSitePlaylist($videoList, "/Volumes/WD/tmp/", "bilibili");
$this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/", "bilibili");
} else if ($item['title'] == '少女时代') {
$this->downloadBSitePlaylist($videoList, "/Volumes/WD/tmp/bilibili/少女时代", "");
$this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/少女时代", "");
} else if ($item['title'] == 'aoa') {
$this->downloadBSitePlaylist($videoList, "/Volumes/WD/tmp/bilibili/aoa", "");
$this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/aoa", "");
} else if ($item['title'] == 'blackpink') {
$this->downloadBSitePlaylist($videoList, "/Volumes/WD/tmp/bilibili/blackpink", "");
$this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/blackpink", "");
} else if ($item['title'] == 'wjsn') {
$this->downloadBSitePlaylist($videoList, "/Volumes/WD/tmp/bilibili/wjsn", "");
$this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/wjsn", "");
} else {
$this->downloadBSitePlaylist($videoList, $this->baseDir . "bilibili/", $item['title']);
$this->partDownloadBSitePlaylist($videoPartsMap, $this->baseDir . "bilibili/", $item['title']);
}
$vItem["is_downloaded"] = 1;
$vItem->save();
}
}
}
@ -557,13 +576,19 @@ class BilibiliServiceV2
public function queryForVideoParts()
{
$i = 1;
$list = BilibiliVideos::simplePaginate(50, null, 'page', $i);
$list = BilibiliVideos::orderBy('id', 'desc')->simplePaginate(200, null, 'page', $i);
// dump($list->items()[0]->aid);
while ($list->isNotEmpty()) {
foreach ($list->items() as $item) {
// dump("current item", [$item->getAttributes()]);
$response = $this->requestVideoParts($item->aid);
$partList = Arr::get(json_decode($response, true), "data");
dump($response);
$responseJson = json_decode($response, true);
if ($responseJson["code"] !== 0) {
Log::error("response is error, aid: " . $item->aid . " response: " . $response);
continue;
}
$partList = Arr::get($responseJson, "data");
if (count($partList) > 0) {
foreach ($partList as $part) {
if ($item["from_type"] == 1) {
@ -591,8 +616,12 @@ class BilibiliServiceV2
$item->total_parts = count($partList);
$item->save();
}
try {
usleep(random_int(10, 100) * 1000);
} catch (\Exception $e) {
}
}
break;
$i++;
$list = BilibiliVideos::simplePaginate(50, null, 'page', $i);
try {
@ -834,9 +863,6 @@ class BilibiliServiceV2
*/
public function partDownloadBSitePlaylist($aidMap, $dir = "/Volumes/intel660p/video/mv/mp4", $subDir)
{
dump("partDownloadBSitePlaylist");
dump($aidMap);
dump($dir);
$dirExists = is_dir($dir);
dump($dirExists);
if ($dirExists) {
@ -845,13 +871,15 @@ class BilibiliServiceV2
if (!is_dir($innerDir)) {
mkdir($innerDir);
}
echo "当前视频的下载路径是: " . $innerDir . "\n";
Log::info("当前视频的下载路径是: " . $innerDir );
foreach ($aidMap as $aid => $parts) {
dump($aid);
Log::info("current download command is : cd '{$innerDir}' && annie -r https://www.bilibili.com/video/av80815149 -p " . $aid);
$downloadResult = shell_exec('cd "' .$innerDir .'" && url="https://www.bilibili.com/video/av' . $aid . '?p="
for i in $(seq 1 ' . $parts . ')
do
annie -c "SESSDATA=75ed2a5a%2C1620866280%2Cc0fab*b1" $url$i
annie -f 64 $url$i
done ' );
Log::info($downloadResult);
Log::info("current download result: " . $downloadResult);


+ 59
- 5
app/Services/ComicsService.php View File

@ -11,6 +11,10 @@ class ComicsService
private $queryInstance;
// private $comicRootPath = "/Volumes/Backup/HuaVid/全彩汉化韩漫第01弹";
private $comicRootPath = "/Users/shixuesen/Documents/fixnew";
public function __construct()
{
$this->queryInstance = QueryList::getInstance();
@ -65,13 +69,63 @@ class ComicsService
public function processAlbum($item)
{
$content = $this->getQueryInstance()->get($item["link"]);
// 单个相册里的页码链接
$rules = [
"link" => [".post-page-numbers", "href"]
"link" => ["", "href"]
];
$range = ".article-content > div:nth-child(1) a";
// $list = $content->rules($rules)->range($range)->query()->getData();
$list = $content->find(".article-content > div:nth-child(1) a")->attrs("href");
dump($list->all());
$range = ".article-content > div:nth-child(2) a";
$items = $content->rules($rules)->range($range)->query()->getData();
// $items = $content->find(".article-content > div:nth-child(2) a")->attrs("href");
dump("album link list", $items->all());
$parsedItems = array_slice($items->all(), 0, count($items->all()) - 1);
$imageRules = [
"src" => ["", "src"]
];
$imageRange = "body > section > div.content-wrap > div > article > p:nth-child(4) img";
$imageItems = $content->rules($imageRules)->range($imageRange)->query()->getData();
$parsedImageItems = $imageItems->all();
// dump($items->all());exit;
foreach ($parsedItems as $parsedItem) {
break;
$content = $this->getQueryInstance()->get($parsedItem["link"]);
$imageItems = $content->rules($imageRules)->range($imageRange)->query()->getData();
$parsedImageItems = array_merge($parsedImageItems, $imageItems->all());
break;
}
$this->processSingleAlbumPage($parsedImageItems, $item["title"]);
}
public function processSingleAlbumPage($items, $title)
{
CommonService::mergeImage($this->comicRootPath . "/" . $title, array_slice($items, 0, 50));exit;
foreach ($items as $item) {
CommonService::downloadImage($this->comicRootPath . "/" . $title, $item["src"]);
}
dump(array_slice($items, 0, 10));
}
public function processImages($item)
{
}
public function processHomeBusinessPeople($url)
{
$content = $this->getQueryInstance()->get($url);
$imageRules = [
"src" => ["", "data-src"]
];
$imageRange = "#comicdetail > div:nth-child(7) img";
$items = $content->rules($imageRules)->range($imageRange)->query()->getData();
dump($items->all());
foreach ($items->all() as $item) {
if ($item["src"] != null) {
CommonService::downloadImage($this->comicRootPath . "/" . "【周二连载】继母的朋友们(作者:Red-A&頸枕) 第1~48话/", $item["src"]);
}
usleep(1000);
}
}
}

+ 49
- 4
app/Services/CommonService.php View File

@ -17,17 +17,62 @@ class CommonService
$host = parse_url($imageUrl, PHP_URL_HOST);
$dirList = explode("/", $dir);
$albumName = array_pop($dirList);
$cookieStr = "__cfduid=d959b19dbaa25a5fac7c5fe1d3988d15e1610778634; frontend=36ab879e6d75ae4e19e4843a1bdf2e45; _gid=GA1.2.22159331.1610804846; __cf_bm=19f3172d7b8d3c97ce28f86ec56af4da3c3560a2-1610805781-1800-Adr3Ph9l2oeHE9Ms+YrTrKfE1uwMO7Tpcw/WxfRrPldspHy/AcwPovSpDcrz+DE3UHWhrw60voIaOsPy3VvpvTV9fjU9F1Hk3y1U5O6V1RZeclh6+YoIpZc1UfRyixPrKw==; frontend-rmu=qUl6oIQSib76RH6A4ZJGALhooK63; frontend-rmt=3d1i%2F0DU5cuBB%2BII5MzosWl0MPonPRchZyJyhL73PzaHWBzoq9RFDWJG%2FDPtCncI; _ga_170M3FX3HZ=GS1.1.1610804845.1.1.1610806191.0; _ga=GA1.2.6396742.1610804846; _gat_UA-140713725-1=1";
$cookieArr = parseCookieHeader($cookieStr);
$cookieJar = CookieJar::fromArray($cookieArr, ".v2ph.com");
// $cookieStr = "__cfduid=d959b19dbaa25a5fac7c5fe1d3988d15e1610778634; frontend=36ab879e6d75ae4e19e4843a1bdf2e45; _gid=GA1.2.22159331.1610804846; __cf_bm=19f3172d7b8d3c97ce28f86ec56af4da3c3560a2-1610805781-1800-Adr3Ph9l2oeHE9Ms+YrTrKfE1uwMO7Tpcw/WxfRrPldspHy/AcwPovSpDcrz+DE3UHWhrw60voIaOsPy3VvpvTV9fjU9F1Hk3y1U5O6V1RZeclh6+YoIpZc1UfRyixPrKw==; frontend-rmu=qUl6oIQSib76RH6A4ZJGALhooK63; frontend-rmt=3d1i%2F0DU5cuBB%2BII5MzosWl0MPonPRchZyJyhL73PzaHWBzoq9RFDWJG%2FDPtCncI; _ga_170M3FX3HZ=GS1.1.1610804845.1.1.1610806191.0; _ga=GA1.2.6396742.1610804846; _gat_UA-140713725-1=1";
// $cookieArr = parseCookieHeader($cookieStr);
// $cookieJar = CookieJar::fromArray($cookieArr, ".v2ph.com");
$client = new GuzzleHttp\Client(['headers' => [
'User-Agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.109 Safari/537.36',
'Referer' => $host,
'cookies' => $cookieJar
// 'cookies' => $cookieJar
]]);
$fileParts = pathinfo($imageUrl);
$completeFile = $dir . "/" . $albumName . "-" . $fileParts["filename"] . "." . $fileParts["extension"];
$client->request('GET', $imageUrl, ['sink' => $completeFile]);
}
public static function mergeImage($path, $picList)
{
$imgInfo = array();//图片信息
$tmp = 1;
$width = 720;//生成的图像宽度
$picCount = count($picList);//图片总数
$imgInfo['width'] = $width;
$imgInfo['height'] = 0;
//首先等比例缩放,让所有图片宽度一样,计算出图片等比例缩放后的长和宽
for ($i = 0; $i < $picCount; $i++) {
usleep(100);
$imgInfo[$i]['url'] = $picList[$i]['src'];
$imgInfo[$i] = getimagesize($imgInfo[$i]['url']);
$tmp = ($imgInfo[$i][0]) / $width;
$imgInfo[$i]['width'] = $width;
$imgInfo[$i]['height'] = ($imgInfo[$i][1]) / $tmp;
$imgInfo[$i]['url'] = $picList[$i]['src'];
$imgInfo[$i]['x'] = 0;
$imgInfo[$i]['y'] = $imgInfo['height'];
$imgInfo['height'] += $imgInfo[$i]['height'];
}
$new_img = ImageCreateTrueColor($imgInfo['width'], $imgInfo['height']); // 创建一个画布,作为拼接后的图片
for ($i = 0; $i < $picCount; $i++) {
usleep(100);
//以下的三行代码 缩放原图
$img_r = imagecreatefromjpeg($imgInfo[$i]['url']); // 获取原图
$dst_r = ImageCreateTrueColor($imgInfo[$i]['width'], $imgInfo[$i]['height']); // 获取新图
imagecopyresampled($dst_r, $img_r, 0, 0, 0, 0,
$imgInfo[$i]['width'], $imgInfo[$i]['height'], $imgInfo[$i][0], $imgInfo[$i][1]);
//把缩放后的图片放在画布上
imagecopyresampled($new_img, $dst_r, $imgInfo[$i]['x'], $imgInfo[$i]['y'], 0, 0,
$imgInfo['width'], $imgInfo[$i]['height'], $imgInfo[$i]['width'], $imgInfo[$i]['height']);
imagedestroy($dst_r);//销毁掉缩放的图片
}
//获取时间戳,以时间戳的名字存放
$name = strval(time());
$img_path = $path . $name . ".jpg";
//存放拼接后的图片到本地
imagejpeg($new_img, $img_path);
}
}

+ 2
- 2
app/Services/HandBrakeService.php View File

@ -53,7 +53,7 @@ class HandBrakeService
}
// public function processDir($baseDir = "/Volumes/WD/Video/HuaVid/")
public function processDir($baseDir = "/Volumes/Samsung/weibo/old_video")
public function processDir($baseDir = "/Volumes/Backup/HuaVid/大忽悠")
{
$files = scandir($baseDir);
foreach ($files as $file) {
@ -85,7 +85,7 @@ class HandBrakeService
$width = $video->get('width')->getAbsoluteValue();
if ($width <= 1280 && $height <= 720) {
echo "$pathFile 分辨率小于 720p 跳过\n";
return;
// return;
}
}
$fileInfo = pathinfo($pathFile);


+ 83
- 6
app/Services/InstagramService.php View File

@ -139,7 +139,7 @@ class InstagramService
$myfile = file_put_contents($failLogFile, $filePrefix . "\t" . $fileUrl . PHP_EOL, FILE_APPEND | LOCK_EX);
}
function downloadFile($filenameUrl, $flag = 0, $filePrefix = "")
function downloadFile($filenameUrl, $flag = 0, $filePrefix = "", $fileNamePrefix = "")
{
//echo $filenameUrl;exit;
$filePathInfo = pathinfo($filenameUrl);
@ -152,6 +152,7 @@ class InstagramService
if ($pos > 0) {
$filename = substr($filename, 0, $pos);
}
$filename = $fileNamePrefix . $filename;
// if ($filename == "33020038_640464766303508_27725890796388352_n.jpg"){
// $flag = 1;
// }
@ -242,14 +243,14 @@ class InstagramService
$imageUrl = $item->getImageVersions2()->getCandidates()[0]->getUrl();
$res = $this->downloadFile($imageUrl, 0, $baseImageDir);
if ($res == 0) {
exit;
return;
}
break;
case Item::VIDEO:
$videoUrl = $item->getVideoVersions()[0]->getUrl();
$res = $this->downloadFile($videoUrl, 0, $baseImageDir);
if ($res == 0) {
exit;
return;
}
break;
case Item::CAROUSEL:
@ -259,7 +260,7 @@ class InstagramService
$imageUrl = $imageItem->getImageVersions2()->getCandidates()[0]->getUrl();
$res = $this->downloadFile($imageUrl, 0, $baseImageDir);
if ($res == 0) {
exit;
return;
}
}
break;
@ -285,7 +286,7 @@ class InstagramService
}
}
public function scrapeUsers()
public function scrapeUsers($start = 0)
{
$ig = new Instagram($this->debug, $this->truncatedDebug);
@ -306,7 +307,7 @@ class InstagramService
try {
$userList = file("/Users/shixuesen/OneDrive/Pictures/instagram/user.txt");
$userList = array_slice($userList, 65, 65);
$userList = array_slice($userList, $start, 65);
// $userList = ['1992.ai_'];
// print_r($userList);exit;
// print_r($userList);
@ -448,6 +449,82 @@ class InstagramService
}
}
public function scrapeCollection()
{
$ig = new Instagram($this->debug, $this->truncatedDebug);
try {
// echo 1;
$ig->login($this->username, $this->password);
} catch
(\Exception $e) {
dump($e);
echo 'Something went wrong: ' . $e->getMessage() . "\n";
exit(0);
}
// dump($list->getItems()[0]->getMedia()->getCarouselMedia());
$collectImageDir = "/Users/shixuesen/OneDrive/Pictures/instagram/collect/";
$maxId = null;
// }
do {
// Request the page corresponding to maxId.
echo "\n current maxId: " . $maxId;
$response = $ig->collection->getFeed("17906577283646940", $maxId);
// In this example we're simply printing the IDs of this page's items.
foreach ($response->getItems() as $item) {
$userFullName = str_replace("/", "", $item->getMedia()->getUser()->getFullName());
switch ($item->getMedia()->getMediaType()) {
case Item::PHOTO:
$imageUrl = $item->getMedia()->getImageVersions2()->getCandidates()[0]->getUrl();
$res = $this->downloadFile($imageUrl, 0, $collectImageDir, $userFullName . "-");
$filename = $this->parseExactFileName($imageUrl);
// Ins::firstOrCreate(['image_name' => $filename], [
// 'username' => $userName,
// 'image_url' => $imageUrl
// ]);
if ($res == 0) {
return;
}
break;
case Item::VIDEO:
$videoUrl = $item->getMedia()->getVideoVersions()[0]->getUrl();
$res = $this->downloadFile($videoUrl, 0, $collectImageDir, $userFullName . "-");
$filename = $this->parseExactFileName($videoUrl);
// Ins::firstOrCreate(['image_name' => $filename], [
// 'username' => $userName,
// 'image_url' => $videoUrl
// ]);
if ($res == 0) {
return;
}
break;
case Item::CAROUSEL:
foreach ($item->getMedia()->getCarouselMedia() as $imageItem) {
$imageUrl = $imageItem->getImageVersions2()->getCandidates()[0]->getUrl();
$res = $this->downloadFile($imageUrl, 0, $collectImageDir, $userFullName . "-");
$filename = $this->parseExactFileName($imageUrl);
// Ins::firstOrCreate(['image_name' => $filename], [
// 'username' => $userName,
// 'image_url' => $imageUrl
// ]);
if ($res == 0) {
return;
}
}
break;
}
// printf("[%s] https://instagram.com/p/%s/\n", $item->getId(), $item->getCode());
sleep(5 * random_int(1, 10));
}
echo "\n Sleeping for 5s...\n";
sleep(10);
} while ($maxId !== null);
}
public function scanLocalFiles($baseDir = '/Users/shixuesen/OneDrive/Pictures/instagram/')
{
$dirs = scandir($baseDir, 1);


+ 16
- 11
app/Services/MM24Service.php View File

@ -8,20 +8,23 @@ use QL\QueryList;
class MM24Service
{
private $baseUrl = "https://www.ligui.org/beautyleg/";
public function getAlbum()
{
for ($i = 1; $i < 20; $i++) {
if ($i == 1) {
$baseUrl = "https://www.mm24.cc/taotu";
$baseUrl = "https://www.ligui.org/beautyleg";
} else {
$baseUrl = "https://www.mm24.cc/taotu/1-{$i}.html";
$baseUrl = "https://www.ligui.org/beautyleg/1_{$i}.html";
}
$baseQl = QueryList::get($baseUrl);
$albumUrls = $baseQl->find("body > div.main > div.boxs > ul > li > a")->attrs("href");
// $albumUrls = $baseQl->find("body > div.main > div.boxs > ul > li > a")->attrs("href");
$albumUrls = $baseQl->find("#container > div.post > a")->attrs("href");
foreach ($albumUrls as $albumUrl) {
dump($albumUrl);
$this->getImage("https://www.mm24.cc" . substr($albumUrl, 0, strlen($albumUrl) - 5));
$this->getImage("https://www.ligui.org/" . substr($albumUrl, 0, strlen($albumUrl) - 5));
}
}
//$baseUrl = "https://www.mm24.cc/taotu/";
@ -29,8 +32,8 @@ class MM24Service
}
public function getImage($albumUrl)
{
$baseDir = "/Volumes/intel660p/image/bl/";
$baseUrl = "https://www.mm24.cc/";
$baseDir = "/Users/shixuesen/Documents/fix_new/";
$baseUrl = "https://www.ligui.org/beautyleg/";
for ($i = 1; $i < 100; $i++) {
dump("new loop start");
if ($i == 1) {
@ -41,18 +44,20 @@ class MM24Service
try {
$baseQl = QueryList::get($ablumn);
} catch (\Exception $e) {
// echo json_encode($e->getMessage());
echo json_encode($e->getMessage());
return;
}
if ($i == 1) {
$title = $baseQl->find("body > div.width > div.weizhi > h1")->htmls()[0];
$title = $baseQl->find("#entry > h1")->htmls()[0];
echo $title;
}
$img = $baseQl->find("#img_view > img")->attr("src");
$img = $baseQl->find("#bigpic > a > img")->attr("src");
echo $img;
$albumPath = $baseDir . "/" .$title;
if (!file_exists($albumPath)) {
mkdir($albumPath);
}
if (file_exists($albumPath."/".pathinfo($img)['filename'].".jpg")) {
if (file_exists($albumPath."/". $i . "-" . pathinfo($img)['filename'].".jpg")) {
continue;
}
$opts = array('http'=> ['header' =>
@ -85,7 +90,7 @@ class MM24Service
dump("after fail curl request");
echo curl_error($curl_handle);
$fp = fopen($albumPath."/".pathinfo($img)['filename'].".jpg", 'x');
$fp = fopen($albumPath."/". $i . "-" . pathinfo($img)['filename'].".jpg", 'x');
fwrite($fp, $query);
fclose($fp);
$sleepTime = 1000 * random_int(100, 1000);


+ 16
- 6
app/Services/NewNvshenService.php View File

@ -83,7 +83,7 @@ class NewNvshenService
];
public function scrapeNvshenGirls()
public function scrapeNvshenGirls($isAll = false)
{
// 15902 原干惠
// 22162 杨晨晨
@ -94,7 +94,7 @@ class NewNvshenService
$NUM_OF_ATTEMPTS = 50;
$mainQl = QueryList::getInstance();
self::$name_dir = array_slice(self::$name_dir, 1, 1);
// self::$name_dir = array_slice(self::$name_dir, 1, 1);
foreach (self::$name_dir as $username => $name) {
// $baseDir = "/Users/shixuesen/Documents/tmp/image/xg/" . $name['dir'] . "/";
$baseDir = "/Volumes/intel660p/image/xg/" . $name["dir"] . "/";
@ -113,9 +113,9 @@ class NewNvshenService
}
// dump($albumCodeMap);exit;
}
$baseUrl = "https://www.nvshens.org";
$baseUrl = "https://www.invshen.net";
usleep(random_int(1000, 10000) * 1000);
$peopleUrl = "https://www.nvshens.org/girl/";
$peopleUrl = "https://www.invshen.net/girl/";
$peopleUrl .= $name['code'];
@ -152,7 +152,12 @@ class NewNvshenService
$totalAlbumPage = ceil($totalAlbumNum / 30);
}
$baseAlbumUrl = "https://www.nvshens.org/girl/{$name['code']}/album/";
$baseAlbumUrl = "https://www.invshen.net/girl/{$name['code']}/album/";
// 表示限制抓取相册数
$countLimit = 5;
if ($isAll) {
$countLimit = 5000;
}
for ($i = 0; $i <= $totalAlbumPage; $i++) {
dump("current album page no: " . $i);
if ($onlyOnePage) {
@ -169,6 +174,10 @@ class NewNvshenService
// $pageAlbum = array_slice($pageAlbum, 19);
// dump($pageAlbum);exit;
foreach ($pageAlbum as $album) {
if ($countLimit <= 0) {
dump("相册已超过限制数量,跳出");
break 2;
}
usleep(10000 * random_int(1000, 10000));
dump("相册:", [$album]);
// $pageQL = $qL0->get($baseUrl . $album);
@ -257,6 +266,7 @@ class NewNvshenService
}
dump($page->all());
// exit;
$countLimit--;
}
// "https://img.onvshen.com:85/gallery/22162/31696/0.jpg"
// exit;
@ -272,7 +282,7 @@ class NewNvshenService
public function subTest()
{
$baseUrl = "https://www.nvshens.org";
$baseUrl = "https://www.invshen.net";
$album = "/g/31347/";
$pageQL = QueryList::get($baseUrl . $album);
$page = $pageQL->find(".albumInfo > span")->htmls();


+ 204
- 0
app/Services/ReplaceCompressedVideoService.php View File

@ -0,0 +1,204 @@
<?php
namespace App\Services;
use Illuminate\Support\Facades\Redis;
use Mhor\MediaInfo\MediaInfo;
class ReplaceCompressedVideoService
{
public function handleVideos($dir = "/Users/shixuesen/Documents/tmp/柚木/2017/泡泡条纹袜/")
{
$files = scandir($dir);
foreach ($files as $file) {
if ($file == "." || $file == "..") {
continue;
}
$subDir = implode("/", [$dir, $file]);
$isDir = is_dir($subDir);
if ($isDir) {
$subFiles = scandir($subDir);
foreach ($subFiles as $subFile) {
$subPathFile = implode("/", [$subDir, $subFile]);
if (is_dir($subPathFile) || $subFile == ".DS_Store") {
continue;
}
$mime = mime_content_type($subPathFile);
// dump("file type", [$mime, $subPathFile]);
// continue;
if (strstr($mime, "video/")) {
if (is_file($subPathFile)) {
$fileInfo = pathinfo($subPathFile);
dump("fileInfo", $fileInfo);
if (ends_with($fileInfo["filename"], "-1")) {
continue;
}
if (is_file($fileInfo["dirname"] . '/' .$fileInfo["filename"] . '-1'. '.' . $fileInfo["extension"])) {
unlink($subPathFile);
continue;
}
$targetFile = $fileInfo["dirname"] . '/' .$fileInfo["filename"] . '-1'. '.' . $fileInfo["extension"];
dump("targetFile", [$targetFile]);
// $result = shell_exec("handBrakeCli -Z 'Very Fast 720p30' -i '". $subPathFile ."' -o '". $targetFile . " && echo 'success'");
$result = shell_exec("handBrakeCli -Z 'Very Fast 720p30' -i '". $subPathFile ."' -o '". $targetFile . "'");
dump($result);
}
}
}
}
}
print_r($files);
}
// public function processDir($baseDir = "/Volumes/WD/Video/HuaVid/")
// public function processDir($baseDir = "/Volumes/intel660p/video/mv/bilibili/tara")
public function processDir($baseDir = "/Volumes/WD/tmp/bilibili/aoa")
{
$files = scandir($baseDir);
foreach ($files as $file) {
if ($file == "." || $file == ".." || $file == ".DS_Store") {
continue;
}
$subDir = implode("/", [$baseDir, $file]);
$isDir = is_dir($subDir);
if ($isDir) {
$this->processDir($subDir);
} else {
$this->processVideo($subDir);
}
}
}
public function processVideo($pathFile)
{
$mime = mime_content_type($pathFile);
// dump("file type", [$mime, $pathFile]);exit;
// continue;
$mediaInfo = new MediaInfo();
$mediaInfo->setConfig('use_oldxml_mediainfo_output_format', true);
if (strstr($mime, "video/") || strstr($mime, "application/octet-stream")) {
if (is_file($pathFile)) {
$mediaContainer = $mediaInfo->getInfo($pathFile);
foreach ($mediaContainer->getVideos() as $video) {
$height = $video->get('height')->getAbsoluteValue();
$width = $video->get('width')->getAbsoluteValue();
if ($height > $width && $width <= 720) {
echo "$pathFile 分辨率小于 720p 跳过\n";
return;
}
if ($height <= $width && $height <= 720) {
echo "$pathFile 分辨率小于 720p 跳过\n";
return;
}
}
$fileInfo = pathinfo($pathFile);
dump("fileInfo", $fileInfo);
if (ends_with($fileInfo["filename"], "-XXXXX#compressed")) {
return;
}
if (starts_with($fileInfo["filename"], "171221 M!CountDown 光州特辑女团现场合集") || starts_with($fileInfo["filename"], "Rainbow - A 现场合集 P14 Rainbow - A + Mach")) {
return;
}
if (Redis::sismember("unneed", $fileInfo["filename"])) {
return;
}
$targetFile = $fileInfo["dirname"] . '/' .$fileInfo["filename"] . '-XXXXX#compressed'. '.' . $fileInfo["extension"];
if (is_file($targetFile)) {
unlink($pathFile);
rename($targetFile, $pathFile);
return;
}
dump("targetFile", [$targetFile]);
// $result = shell_exec("handBrakeCli -Z 'Very Fast 720p30' -i '". $subPathFile ."' -o '". $targetFile . " && echo 'success'");
$result = shell_exec("handBrakeCli --json -Z 'Very Fast 720p30' -i '". $pathFile ."' -o '". $targetFile . "'");
// echo $result;
preg_match_all("#\"State\"\: \"WORKDONE\"#", $result, $match);
if (count($match) > 0) {
echo "compress work done remove the file \n";
$oldFileSize = filesize($pathFile);
$newFileSize = filesize($targetFile);
if ($newFileSize >= $oldFileSize) {
Redis::sadd("unneed", $fileInfo["filename"]);
echo "old file size is smaller than new one, old is " . file_size($oldFileSize) . " and new is " . file_size($newFileSize) . ", now remove new one";
unlink($targetFile);
} else {
echo "new file size is smaller than old one, new is " . file_size($newFileSize) . " and old is " . file_size($oldFileSize) . ", now remove old one";
unlink($pathFile);
rename($targetFile, $pathFile);
}
}
}
}
}
function human_filesize($bytes, $decimals = 2) {
$sz = 'BKMGTP';
$factor = floor((strlen($bytes) - 1) / 3);
return sprintf("%.{$decimals}f", $bytes / pow(1024, $factor)) . @$sz[$factor];
}
public function processUnCompleteDir($baseDir = "/Volumes/WD/tmp/探花系列【AI高清2K修复】大合集")
// public function processDir($baseDir = "/Volumes/Backup/iPhone nPlayer/")
{
$files = scandir($baseDir);
foreach ($files as $file) {
if ($file == "." || $file == "..") {
continue;
}
$subDir = implode("/", [$baseDir, $file]);
$isDir = is_dir($subDir);
if ($isDir) {
$this->processUnCompleteDir($subDir);
} else {
$this->processUnCompleteVideo($subDir);
}
}
}
public function processUnCompleteVideo($pathFile)
{
//...
$mediaInfo = new MediaInfo();
$mediaInfo->setConfig('use_oldxml_mediainfo_output_format', true);
$mime = mime_content_type($pathFile);
// dump("file type", [$mime, $subPathFile]);
// continue;
if (strstr($mime, "video/")) {
if (is_file($pathFile)) {
$fileInfo = pathinfo($pathFile);
// dump("fileInfo", $fileInfo);
if (ends_with($fileInfo["filename"], "-1")) {
return;
}
if (is_file($fileInfo["dirname"] . '/' .$fileInfo["filename"] . '-1'. '.' . $fileInfo["extension"])) {
$mediaInfoContainer1 = $mediaInfo->getInfo($fileInfo["dirname"] . '/' .$fileInfo["filename"] . '-1'. '.' . $fileInfo["extension"]);
$millSecond1 = $mediaInfoContainer1->getGeneral()->get("duration")->getMilliseconds();
echo gettype($millSecond1) . "\n";
// ["duration"] . "\n";
$mediaInfoContainer = $mediaInfo->getInfo($pathFile);
$millSecond = $mediaInfoContainer->getGeneral()->get("duration")->getMilliseconds();
echo gettype($millSecond) . "\n";
if (abs(intval($millSecond) - intval($millSecond1)) > 100) {
echo $pathFile . "\n";
echo abs(intval($millSecond) - intval($millSecond1)) . "\n";
}
// unlink($pathFile);
return;
}
// $targetFile = $fileInfo["dirname"] . '/' .$fileInfo["filename"] . '-1'. '.' . $fileInfo["extension"];
// dump("targetFile", [$targetFile]);
//// $result = shell_exec("handBrakeCli -Z 'Very Fast 720p30' -i '". $subPathFile ."' -o '". $targetFile . " && echo 'success'");
// $result = shell_exec("handBrakeCli -Z 'Very Fast 720p30' -i '". $pathFile ."' -o '". $targetFile . "'");
// dump($result);
}
}
}
}

+ 12
- 1
app/Services/TujiguService.php View File

@ -83,7 +83,7 @@ class TujiguService
];
public function scrapeTujiguGirls()
public function scrapeTujiguGirls($isAll = false)
{
// self::$name_dir = array_slice(self::$name_dir, 1, 1);
foreach (self::$name_dir as $username => $name) {
@ -128,6 +128,12 @@ class TujiguService
$totalAlbumPage = ceil($totalAlbumNum / 40);
}
$baseAlbumUrl = "https://www.tujigu.com/t/{$name['code']}/";
// 表示限制抓取相册数
$countLimit = 8;
if ($isAll) {
$countLimit = 5000;
}
for ($i = 0; $i < $totalAlbumPage; $i++) {
if ($onlyOnePage || $totalAlbumPage == 1 || $i == 0) {
$albumQl = QueryList::get($peopleUrl);
@ -139,6 +145,10 @@ class TujiguService
$pageAlbum = $albumList->all();
dump($pageAlbum);
foreach ($pageAlbum as $album) {
if ($countLimit <= 0) {
dump("相册已超过限制数量,跳出");
break 2;
}
dump("current album page no: " . $i);
usleep(10000 * random_int(1000, 10000));
dump("相册:", [$album]);
@ -221,6 +231,7 @@ class TujiguService
}
dump($page->all());
// exit;
$countLimit--;
}
}


+ 13
- 4
app/Services/XiurenjiService.php View File

@ -81,13 +81,14 @@ class XiurenjiService
dump("new Album: " . urldecode($albumName[0]));
$albumName = urldecode($albumName[0]);
}
$this->parseContent($this->rootDir. $albumName, $pageContent);
$imageNo = 1;
$this->parseContent($this->rootDir. $albumName, $pageContent, $imageNo);
dump("albumName: ". $albumName);
// dump("item: ". $item);
// exit;
for ($i = 1; $i < $pageCount; $i++) {
$pageContent = $this->getEncodeHtmlContent($this->xiurenRootUrl . $albumCode . "_" . $i . ".html");
$this->parseContent($this->rootDir. $albumName, $pageContent);
$this->parseContent($this->rootDir. $albumName, $pageContent, $imageNo);
}
// dump("slashPos: " . $slashPos . " dotPos: " . $dotPos . " albumCode: ". $albumCode);
// dump($item);
@ -95,7 +96,7 @@ class XiurenjiService
}
}
public function parseContent($dir, $pageContent)
public function parseContent($dir, $pageContent, &$imageNo)
{
if (!is_dir($dir)) {
try {
@ -114,6 +115,12 @@ class XiurenjiService
$trueImageUrl = "https://www.xiurenji.com" . $imageUrl;
$fileInfo = pathinfo($trueImageUrl);
if (file_exists($dir . "/" .$fileInfo["basename"])) {
rename($dir . "/" . $fileInfo["basename"], $dir . "/" . $imageNo . "-" . $fileInfo["basename"]);
$imageNo++;
continue;
}
if (file_exists($dir . "/" . $imageNo . "-" . $fileInfo["basename"])) {
$imageNo++;
continue;
}
dump($fileInfo);
@ -147,10 +154,12 @@ class XiurenjiService
break;
} while($attempts < 100);
if ($content != "") {
file_put_contents($dir . "/" .$fileInfo["basename"], $content);
file_put_contents($dir . "/" . $imageNo . "-" . $fileInfo["basename"], $content);
} else {
Log::error("image content is empty ". $trueImageUrl);
}
$imageNo++;
// dump("current imageNo: " . $imageNo);
}
}


+ 1
- 0
composer.json View File

@ -29,6 +29,7 @@
"netresearch/jsonmapper": "^1.6",
"norkunas/youtube-dl-php": "^1.4",
"protoqol/prequel": "^1.22",
"ps/image-optimizer": "^2.0",
"qcloud/cos-sdk-v5": ">=1.0",
"raiym/instagram-php-scraper": "^0.8.31",
"symfony/finder": "^4.4",


+ 72
- 1
composer.lock View File

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "4fee38a1137444a0d52476dfcd4ebaed",
"content-hash": "c1e5ebef565e5b9357e36df1deab2b66",
"packages": [
{
"name": "barryvdh/laravel-ide-helper",
@ -5205,6 +5205,77 @@
},
"time": "2020-06-27T02:14:30+00:00"
},
{
"name": "ps/image-optimizer",
"version": "2.0.4",
"source": {
"type": "git",
"url": "https://github.com/psliwa/image-optimizer.git",
"reference": "9f9e8ccc617d3c1b5034a659bc2c1c14a6de2647"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/psliwa/image-optimizer/zipball/9f9e8ccc617d3c1b5034a659bc2c1c14a6de2647",
"reference": "9f9e8ccc617d3c1b5034a659bc2c1c14a6de2647",
"shasum": "",
"mirrors": [
{
"url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
"preferred": true
}
]
},
"require": {
"php": "^7.3 | ^8.0",
"psr/log": "^1.0",
"symfony/options-resolver": "~3.3 | ~4.0 | ~5.0",
"symfony/process": "~3.3 | ~4.0 | ~5.0"
},
"require-dev": {
"ext-gd": "*",
"phpunit/phpunit": "^9.0"
},
"type": "library",
"autoload": {
"psr-0": {
"ImageOptimizer": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Piotr Sliwa",
"email": "peter.pl7@gmail.com"
}
],
"description": "Image optimization / compression library. This library is able to optimize png, jpg and gif files in very easy and handy way. It uses optipng, pngquant, pngcrush, pngout, gifsicle, jpegoptim and jpegtran tools.",
"keywords": [
"compression",
"image",
"image optimizer",
"jpegoptim",
"optimization",
"optipng"
],
"support": {
"issues": "https://github.com/psliwa/image-optimizer/issues",
"source": "https://github.com/psliwa/image-optimizer/tree/2.0.4"
},
"funding": [
{
"url": "https://www.paypal.me/psliwa",
"type": "custom"
},
{
"url": "https://github.com/psliwa",
"type": "github"
}
],
"time": "2021-02-23T19:34:48+00:00"
},
{
"name": "psr/cache",
"version": "1.0.1",


+ 51
- 0
fail.log View File

@ -969,3 +969,54 @@
/Users/shixuesen/OneDrive/Pictures/instagram/cxxsomi/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/150928119_699242484043058_7630353759629458952_n.jpg?_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=102&_nc_ohc=hz1rRFqvOisAX8BGhBY&se=7&tp=1&oh=cb0318c22f162a4530bb3182f1b93387&oe=605B49BD&ig_cache_key=MjUxMjU0NzY5NTU3NTc1MTk1Mg%3D%3D.2
/Users/shixuesen/OneDrive/Pictures/instagram/angelachong_99/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/e35/151302909_356631788711874_2200316248623901481_n.jpg?_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=106&_nc_ohc=GjvGznhEI6MAX-OtKRo&se=8&tp=1&oh=23b6af9b76ad6839721d668dfa40304a&oe=605FB7AD&ig_cache_key=MjUxNDU2NzM2Mzc1MDYyMDU4Nw%3D%3D.2
/Users/shixuesen/OneDrive/Pictures/instagram/2km2km/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/153398333_179791520578347_3415261100805801786_n.jpg?_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=103&_nc_ohc=Lr2poZjMVRUAX8EhpKu&se=7&tp=1&oh=5e0ddaa4084e18af4d1acd6ef5d91ff6&oe=6061B5BE&ig_cache_key=MjUxNTk1MDE1Njk3MzYxNzE0OQ%3D%3D.2
/Users/shixuesen/OneDrive/Pictures/instagram/airisuzuki_official_uf/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/88760607_134514971907376_4171244239883694655_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5zdG9yeS5kZWZhdWx0In0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=104&_nc_ohc=wZVVSSQwW2sAX_40v-x&vs=18197011030034527_347794243&_nc_vs=HBksFQAYJEdCOWhTZ1V3RlI0MVYzb0FBRDl5cVRXSlBPTTVidXFIQUFBQRUAAsgBABUAGCRHSmlBV3dsZ2Nyc3U1SG9BQU9weFBOYWxydnBoYnBrd0FBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACa%2B9%2B%2FQuIXTQBUCKAJDMywXQCpU%2FfO2RaIYEmRhc2hfYmFzZWxpbmVfMV92MREAdegHAA%3D%3D&_nc_rid=2f6cf53478&oe=6044FFFB&oh=0a2361645a8abbfcd0021af75744c3e7
/Users/shixuesen/OneDrive/Pictures/instagram/limerencelm/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/156463249_189351575911040_2501234323167779718_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=108&_nc_ohc=ejEjPCkjh8MAX8DupLp&oh=f864c8cab3dff32e3ddfd934ab3bcf06&oe=606E1A42&ig_cache_key=MjUyMjY4OTQzNzAyNjgzMzc2Ng%3D%3D.2
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/156606640_1380234762331463_8214798277084842983_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=1&_nc_ohc=e-L1E78vAO0AX-uvvi6&oh=a7257fded1a600cadfb11ac86528ffbf&oe=606D5699&ig_cache_key=MjUyMjQ4MDYxMTQ3MTMxMDgzNg%3D%3D.2
/Users/shixuesen/OneDrive/Pictures/instagram/skuukzky/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/157242101_1173418349784579_2778575007390863088_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=1&_nc_ohc=abWedYfXVg4AX9zW2ur&oh=5f6fe0166e1db5bebe4f2e5920a5578a&oe=606F00BB&ig_cache_key=MjUyMzg5NTI2OTE2NzU2ODI5NQ%3D%3D.2
/Users/shixuesen/OneDrive/Pictures/instagram/weiman_the_real_one/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/79595973_251305149980078_6773871250614849780_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjU0MC5zdG9yeS5kZWZhdWx0In0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=102&_nc_ohc=6blqxArugRoAX-47T41&vs=17948715751413471_1258578853&_nc_vs=HBksFQAYJEdNV0p2Z1N1M1RHS2pfUUFBUFFRSVU4RG9BRmVidXFIQUFBQRUAAsgBABUAGCRHRi1FZHdtSUEzenBUNndBQUJpMHkzUHRxdm9oYnBrd0FBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACa%2BidTp4JDiPxUCKAJDMywXQCpU%2FfO2RaIYEmRhc2hfYmFzZWxpbmVfMl92MREAdegHAA%3D%3D&_nc_rid=82a6eb8348&oe=60497CBB&oh=2c4e362c6794e8db0e8342615888d6af
/Users/shixuesen/OneDrive/Pictures/instagram/weiman_the_real_one/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/98794063_265756488451432_8827490873356720666_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5zdG9yeS5kZWZhdWx0In0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=104&_nc_ohc=B4yp-ECWiGsAX9-OHFE&vs=17874942350305462_552215608&_nc_vs=HBksFQAYJEdFOTY0d1ZvUlJkQnRQRUFBQm9hYnVRdGpJRjZidXFIQUFBQRUAAsgBABUAGCRHSlQ5YWdudElCNlpMOWtCQUo5Z3JodkhrZHg1YnBrd0FBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACbs1t3rycrAPxUCKAJDMywXQCgzMzMzMzMYEmRhc2hfYmFzZWxpbmVfM192MREAdegHAA%3D%3D&_nc_rid=82a6e55851&oe=604979FB&oh=364bce5d8ef75e8580189adb25c41bcc
/Users/shixuesen/OneDrive/Pictures/instagram/weiman_the_real_one/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/73723937_342420563781130_9167063942741945464_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5zdG9yeS5kZWZhdWx0In0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=110&_nc_ohc=sM6fK74nzyIAX9LojJy&vs=17860366049423324_2706109404&_nc_vs=HBksFQAYJEdDSHdaQVFLWmhFQWJqY0JBSGpzYkRRVzlEZC1idXFIQUFBQRUAAsgBABUAGCRHQzRYZEFrTlFCNE1PbzBCQUU0bU1uX3R4NVk4YnBrd0FBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACa435eVjfq5PxUCKAJDMywXQC4AAAAAAAAYEmRhc2hfYmFzZWxpbmVfM192MREAdegHAA%3D%3D&_nc_rid=82a6ef55f4&oe=6049B3B4&oh=15469493ff545b3f76bc5c00f9d78133
/Users/shixuesen/OneDrive/Pictures/instagram/collect/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/90407050_209440316976804_4377456586688884453_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=100&_nc_ohc=Wa48T3IMkkIAX8YSDwu&oh=9bfb0f1f986581e3e616620a375518ca&oe=6072BEC8&ig_cache_key=MjI3MjM4MzIxNTI4NDg1MjYwMA%3D%3D.2
/Users/shixuesen/OneDrive/Pictures/instagram/collect/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/p480x480/90504540_536282880604661_66086985855698024_n.jpg?tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=105&_nc_ohc=luEFzPs2dEEAX8I74i4&oh=1174d31039f5f0fae22a21d0a4c010bf&oe=60729CDE&ig_cache_key=MjI3MjM3OTczMjM1MTcwMDgxNw%3D%3D.2
/Users/shixuesen/OneDrive/Pictures/instagram/__leeheeeun__/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/159085723_144660567449625_4760770736435743183_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5mZWVkLmRlZmF1bHQifQ&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=109&_nc_ohc=FmpnR3NuEtUAX8Y7NT5&vs=17913728131615870_3718004236&_nc_vs=HBksFQAYJEdKdDBld2taWUx4cGtZTUFBTS1KVTlyQ3B4RkNia1lMQUFBRhUAAsgBABUAGCRHTC1ZZlFudUFPQjE1dUFCQUV4T0tvckVSSkVMYmtZTEFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMBUAACb859u1mJzSPxUCKAJDMywXQEaVP3ztkWgYEmRhc2hfYmFzZWxpbmVfM192MREAdeoHAA%3D%3D&_nc_rid=ab44d9b57a&oe=604D4732&oh=8f61f4c03cf4d131093f02038ddc5073
/Users/shixuesen/OneDrive/Pictures/instagram/mobeee19920223/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/e35/159188045_445351823384219_5720431441448475231_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=111&_nc_ohc=yACTpgvqICgAX_1Y-5R&oh=884a1a93ac7cc388f0869ff34c757286&oe=60765715&ig_cache_key=MjUyNjE2NDU1MzIzMjc0MDg1Nw%3D%3D.2
/Users/shixuesen/OneDrive/Pictures/instagram/ngoctrinh89/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/98709827_1344184375946007_4793494567860034196_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5zdG9yeS5kZWZhdWx0In0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=103&_nc_ohc=rlFFt5pygxEAX-WhVRk&vs=17878867139137114_190025075&_nc_vs=HBksFQAYJEdFTXg0Z1VYcXoxUWg4WUVBSlRhRDVicDZZVkNidXFIQUFBQRUAAsgBABUAGCRHTUVSaFFsblhPb3RVTDhCQUNlMHozejZ2OXAtYnBrd0FBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACa07rKchK%2FCPxUCKAJDMywXQAczMzMzMzMYEmRhc2hfYmFzZWxpbmVfMV92MREAdegHAA%3D%3D&_nc_rid=2d95ae7f99&oe=60524AED&oh=71ed42679efe4398675f0cfea3577e61
/Users/shixuesen/OneDrive/Pictures/instagram/ngoctrinh89/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/102082470_1058141571341801_3457251942134548687_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5zdG9yeS5kZWZhdWx0In0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=105&_nc_ohc=Fuhk7-BZTP4AX8SbSo-&vs=18071169691264154_567438996&_nc_vs=HBksFQAYJEdLYW5GUWJwWFh2SVg4SURBTV9JOWZWU29Qb3ZidXFIQUFBQRUAAsgBABUAGCRHS0RsaXdrcHRQdVR4X2dDQU40Y2I0aHBCc3dCYnBrd0FBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACa02%2FLlweiZQBUCKAJDMywXQC27ZFocrAgYEmRhc2hfYmFzZWxpbmVfMV92MREAdegHAA%3D%3D&_nc_rid=2d95a541de&oe=6052AAE1&oh=a255588868ef6aba083342a8b07e81f1
/Users/shixuesen/OneDrive/Pictures/instagram/ngoctrinh89/ https://scontent-lax3-2.cdninstagram.com/v/t50.2886-16/75135164_120706810026467_166481533277471465_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5zdG9yeS5kZWZhdWx0In0&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=111&_nc_ohc=RrQsCQmt1hoAX_jAlTx&vs=17865456368396184_2771627408&_nc_vs=HBksFQAYJEdMeDRlZ1RqbVlnX3lHMEFBT21DcW93U2RrOENidXFIQUFBQRUAAsgBABUAGCRHS2xLVmdsQXR3eHRDbjBCQU45RU04aGZCdFp5YnBrd0FBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACawsc6HtqK8PxUCKAJDMywXQC4AAAAAAAAYEmRhc2hfYmFzZWxpbmVfMV92MREAdegHAA%3D%3D&_nc_rid=2d95ac702b&oe=60528EA1&oh=e5543ad762ab2543991394d90b29e824
/Users/shixuesen/OneDrive/Pictures/instagram/ngoctrinh89/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/75107167_614978252708110_5916761238207824410_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5zdG9yeS5kZWZhdWx0In0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=110&_nc_ohc=fTDOpTvRdjEAX9inK4y&vs=17885408153090754_3170697729&_nc_vs=HBksFQAYJEdGOExlZ1FPR1V6SVVTOENBQnFDTFhELWpoeFNidXFIQUFBQRUAAsgBABUAGCRHTkViZXduTlVLQVR3dG9BQUhHc1p3TXJnOGw4YnBrd0FBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACaEi7%2Be4qvFPxUCKAJDMywXQC4AAAAAAAAYEmRhc2hfYmFzZWxpbmVfMl92MREAdegHAA%3D%3D&_nc_rid=2d95aed076&oe=60526BE1&oh=9b3c1429b4581e900988529b95db25db
/Users/shixuesen/OneDrive/Pictures/instagram/ngoctrinh89/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/160220522_151996790117981_3940324088089389007_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=1&_nc_ohc=Y7gdShYBd58AX-wUZ9l&oh=8898ba887ba3170e782f40084ae94a93&oe=6077FE12&ig_cache_key=MjUyOTYzNDk1OTY2MzkzOTE1OQ%3D%3D.2
/Users/shixuesen/OneDrive/Pictures/instagram/ngoctrinh89/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/161447296_470294770833652_7069834902647750101_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=1&_nc_ohc=El-DBinAkY0AX-Y5ioi&oh=8bce3b25a2149d35a5ed49b018639ecf&oe=6079EB8E&ig_cache_key=MjUyOTYzNDk1OTczMTA3NDI5Ng%3D%3D.2
/Users/shixuesen/OneDrive/Pictures/instagram/queena820628/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/160281323_131819952135765_8943080943444037084_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=109&_nc_ohc=Cy0chiUmHysAX97YqzB&oh=ddbf5ff92dda56d0791465641b407492&oe=6078182F&ig_cache_key=MjUyOTY5NTI0MjcyNTA0NzU1OA%3D%3D.2
/Users/shixuesen/OneDrive/Pictures/instagram/e.s2.e/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/161682553_1120862051709124_3338670804664985940_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=104&_nc_ohc=P2DjKQ3MJdsAX8dVY3P&ccb=7-4&oh=d21474acd7fd66c84631013e6c41efc4&oe=607EDBD5&_nc_sid=6136e7&ig_cache_key=MjUzMTE3NjIxMjU0MjQwMzIxMQ%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/nyanchan22/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/163375498_119136800189008_2378763467239822346_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5mZWVkLmRlZmF1bHQifQ&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=104&_nc_ohc=LvF1S-A6cvUAX9V5pYm&vs=17894920510935425_3866105712&_nc_vs=HBksFQAYJEdJcnB2QWxRcXFleVdtd0FBQXFVZ1MzRkVBTWhia1lMQUFBRhUAAsgBABUAGCRHRWxGbHdsVm9Nc01GZmtBQU1SMzdJOF9ZaUFIYmtZTEFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMBUAACaCnfilu9XJPxUCKAJDMywXQDOZmZmZmZoYEmRhc2hfYmFzZWxpbmVfMV92MREAdeoHAA%3D%3D&_nc_rid=aafc4e3b9d&ccb=7-4&oe=6059E181&oh=b00db2cee44cc3bd251cbc3732f50be5&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/162923959_1095149807559746_7112264909188223662_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=102&_nc_ohc=HXBIluDyP0gAX-nrYlH&ccb=7-4&oh=72c0b974ab987640181b013764957b7a&oe=6084365C&_nc_sid=7479f6&ig_cache_key=MjUzNTcyNDkxNTgzNzgyMDM3Ng%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/e35/p480x480/163584931_303227391221759_6083036838718408558_n.jpg?tp=1&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=111&_nc_ohc=2v9Ze-PQTA0AX_0yqzP&ccb=7-4&oh=824b4932ba27d23546d23bfc4c8cc8dd&oe=6084A5EC&_nc_sid=7479f6&ig_cache_key=MjUzNTcyMjI5NDg5Mjc4NDk2Ng%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/162923959_288685149327790_6418765448836630117_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=110&_nc_ohc=U8zRxAMg19gAX-msbJc&ccb=7-4&oh=82982457119ea1c4650226ad89c17e61&oe=60844A15&_nc_sid=7479f6&ig_cache_key=MjUzNTcyNDkxNTgyMDg5NzEwMg%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/e35/163408784_512984446525327_3620829302224599105_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=107&_nc_ohc=wscK227DSt0AX-mYc3f&ccb=7-4&oh=389f0b2e365a5fd577430219158fcfd7&oe=60841D52&_nc_sid=7479f6&ig_cache_key=MjUzNTcyNDkxNTg2MjkwOTcwMA%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/162877492_361598465024990_8555117578210471747_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=1&_nc_ohc=iZEw6BSprzMAX8XDY5t&ccb=7-4&oh=2fc05bf546f8c3af02d80933ebb18ef5&oe=6085829B&_nc_sid=7479f6&ig_cache_key=MjUzNTcyNDkxNTg0NjE5OTExNg%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/163252912_1140991233015593_4887939106548406903_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=105&_nc_ohc=adSKZ-mqRYwAX8xu_T8&ccb=7-4&oh=3a7b12b3a501660a7c8108f47d15e2a8&oe=6085A082&_nc_sid=7479f6&ig_cache_key=MjUzNTcyNDkxNTg0NjI2MjAwMw%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/e35/164318964_2956832824599859_7019632302455812726_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=107&_nc_ohc=fRa7_m7xPoUAX9qYc0C&ccb=7-4&oh=de12e251c38b95619b932df3c0e15a0b&oe=60858EB5&_nc_sid=7479f6&ig_cache_key=MjUzNTc0MjExMDQ3OTM5MzczMw%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/163874123_350041429697469_1559834855470857326_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=109&_nc_ohc=zkfiJ3EZ1yQAX82y_ZN&ccb=7-4&oh=43a951f0cd9d9e0ba53ad1e7b8c59b24&oe=6085992A&_nc_sid=7479f6&ig_cache_key=MjUzNTc0MjExMDM3ODYwMzAyMA%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/163170609_649378619178473_2869500608345839236_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=105&_nc_ohc=YHWiFW5OgBMAX9NyCqe&ccb=7-4&oh=bb15c7a0a7b25556e96a27e09e2f7cbe&oe=60852EC5&_nc_sid=7479f6&ig_cache_key=MjUzNTc0MjExMDM3MDI2ODY3Mw%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/163107951_4572888952727355_277708902539767421_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=103&_nc_ohc=P65OUttRvREAX-k1z5T&ccb=7-4&oh=1f16f690bd7678d6b1fb6ebaba910e72&oe=608498C3&_nc_sid=7479f6&ig_cache_key=MjUzNTc0Mjc1MjA1NjY4NDcwMg%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/163983486_3916000518487112_3484780215017184260_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=108&_nc_ohc=-XHolWJUKa0AX88bo7N&ccb=7-4&oh=c903ce07c06287d0f5857bffcd63db49&oe=60838B6A&_nc_sid=7479f6&ig_cache_key=MjUzNTc0Mjc1MjA2NTExNjU2Mw%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/164032330_1353283995036616_2058195176400057439_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=104&_nc_ohc=-OgPs_MiG_4AX_7JmNb&ccb=7-4&oh=f087c21cf4b0b8a8275a63095b2d1bfc&oe=608634CC&_nc_sid=7479f6&ig_cache_key=MjUzNTc0Mjc1MjA0MDA3MDg2OQ%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/e35/163235627_926124701482223_1252806770544787112_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=111&_nc_ohc=S8aDGfzLvRcAX9TFxoE&ccb=7-4&oh=9564a8f65f0f0418484b7c4718dbfe9f&oe=6083C9C8&_nc_sid=7479f6&ig_cache_key=MjUzNTc0Mjc1MjA4MTg0NjY4Nw%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/e35/162914685_734925843845370_719294627101245916_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=106&_nc_ohc=Ha53dny3EFMAX_1chYc&ccb=7-4&oh=c5c6b31e9821f8334b050aa3e4d6207c&oe=6083DA50&_nc_sid=7479f6&ig_cache_key=MjUzNTc0Mjc1MjA3MzY0NzY4OA%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/162956968_280427120214537_5727328144074194837_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=109&_nc_ohc=6mH7NR34P2EAX-QIhS8&ccb=7-4&oh=65f74a3a2c1c6f23a4ea40594de47bd6&oe=6084757F&_nc_sid=7479f6&ig_cache_key=MjUzNTc0Mjc1MjA5MDQ2MDkzMQ%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/163226889_877368089770814_1550857348892465159_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=1&_nc_ohc=uG-6JpjKS9gAX9mfTjC&ccb=7-4&oh=3bee6d844a570cd051f98483a747a2c0&oe=60839229&_nc_sid=7479f6&ig_cache_key=MjUzNTc1MTc1NTk2MjAyNjE3NA%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/e35/163395121_276755030619438_4409430524423933223_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=106&_nc_ohc=2mGT0NzF_2UAX86z7zP&ccb=7-4&oh=e46c8a341820bab438ef894194aa85f9&oe=60837875&_nc_sid=7479f6&ig_cache_key=MjUzNTc3Mzg1MjE0ODc1NjQ5OQ%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/e35/163290957_1927231107418158_3860786224391464551_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=106&_nc_ohc=OeYHM1AumMMAX_8rMQe&ccb=7-4&oh=fd3634b3ac453dae0f0eedf10c9bfbac&oe=6083756C&_nc_sid=7479f6&ig_cache_key=MjUzNTc3NzY2Mjc0MzQ2OTc1Mg%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/163034960_490210522143997_1625857144353691190_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=101&_nc_ohc=nCfzsoDXqCcAX97xaHu&ccb=7-4&oh=d555202bfbd5d268272497ebc3f25a00&oe=6083058F&_nc_sid=7479f6&ig_cache_key=MjUzNTc4MTMzMTYyNjMyMDQxMg%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/yui_xin_/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/88675447_169047108284565_5822486267418376149_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5zdG9yeS5kZWZhdWx0In0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=109&_nc_ohc=uWYxHxCvphEAX-75A08&vs=17893526890979550_1430361348&_nc_vs=HBksFQAYJEdIY1VTUVdWOE5aWXY1a0FBTlgzRDA5cG9NMVFidXFIQUFBQRUAAsgBABUAGCRHQ05od2dsS3pDRk1wcFlGQU9xQzEtd1FUSVVBYnBrd0FBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACa8xbvXq4TJPxUCKAJDMywXQByIMSbpeNUYEmRhc2hfYmFzZWxpbmVfMl92MREAdegHAA%3D%3D&_nc_rid=bbe3c5e1f8&ccb=7-4&oe=605E1D52&oh=d1c342f478e806ab9f2f20ecdf3cd6fc&_nc_sid=bab638
/Users/shixuesen/OneDrive/Pictures/instagram/yui_xin_/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/88659674_3044598449155095_5195585655666802250_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5zdG9yeS5kZWZhdWx0In0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=103&_nc_ohc=cyffGoYaFsYAX8sG76f&vs=17904821959770989_3678737401&_nc_vs=HBksFQAYJEdOcldTQVVYckF2UkM5RUtBRXBfSWw2Z2JScElidXFIQUFBQRUAAsgBABUAGCRHQW9Kd0FuNk5PSWYyR29BQUY0c2NFVFBkaHBpYnBrd0FBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACba6qrD5pXOPxUCKAJDMywXQB6IMSbpeNUYEmRhc2hfYmFzZWxpbmVfM192MREAdegHAA%3D%3D&_nc_rid=bbe3ccc983&ccb=7-4&oe=605DF1E0&oh=97a639dbfe4da2b1d5153f469e82c4f2&_nc_sid=bab638
/Users/shixuesen/OneDrive/Pictures/instagram/yui_xin_/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/88674705_1018955841964509_5732786124958335110_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5zdG9yeS5kZWZhdWx0In0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=109&_nc_ohc=_-o_pTHMtoQAX8Dhw8-&vs=17886788699097984_3751458952&_nc_vs=HBkcFQAYJEdKRVJTUVhkaVFBbHZKNERBSVlBYm1lYjhvNVBidXFIQUFBQRUAAsgBACgAGAAbAYgHdXNlX29pbAExFQAAJoC0ocGQ%2FMU%2FFQIoAkMzLBdAFAAAAAAAABgSZGFzaF9iYXNlbGluZV8xX3YxEQB16AcA&_nc_rid=bbe3c444ac&ccb=7-4&oe=605DFB26&oh=9c315da9586bf5b4e1fa66096f97fe92&_nc_sid=bab638
/Users/shixuesen/OneDrive/Pictures/instagram/yui_xin_/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/88661778_113993450661026_5859817564473033967_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5zdG9yeS5kZWZhdWx0In0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=102&_nc_ohc=8XIPKhFVf6UAX9BCBRD&vs=17886116684038756_215554893&_nc_vs=HBksFQAYJEdCTGZTQVdpSkNJcnJXY0FBT19FQWpzSFFWSlJidXFIQUFBQRUAAsgBABUAGCRHQ3pycmdrWGlOV3BEamdEQUgxM3pnc0d3dHRoYnBrd0FBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACbInIG0gdXFPxUCKAJDMywXQBJDlYEGJN0YEmRhc2hfYmFzZWxpbmVfMl92MREAdegHAA%3D%3D&_nc_rid=bbe3c3e183&ccb=7-4&oe=605E71F4&oh=ab0cae815e1dd42c2affa056713f77fb&_nc_sid=bab638
/Users/shixuesen/OneDrive/Pictures/instagram/yui_xin_/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/88668044_1432958327057021_5726444432150176773_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5zdG9yeS5kZWZhdWx0In0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=105&_nc_ohc=j1BK1j6CcQEAX9GFR3x&vs=18172971070098383_3214993290&_nc_vs=HBkcFQAYJEdJejNTQVY5NmdfY1JCY0ZBQVVrVS16ZWFuaFBidXFIQUFBQRUAAsgBACgAGAAbAYgHdXNlX29pbAExFQAAJp74oZaRjshAFQIoAkMzLBdAFAAAAAAAABgSZGFzaF9iYXNlbGluZV8zX3YxEQB16AcA&_nc_rid=bbe3c46448&ccb=7-4&oe=605E7F49&oh=aa4e8a011b297683f0fd5e3db4015f96&_nc_sid=bab638
/Users/shixuesen/OneDrive/Pictures/instagram/yui_xin_/ https://scontent-lax3-2.cdninstagram.com/v/t50.2886-16/88662821_725049241466190_7588624272094092256_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5zdG9yeS5kZWZhdWx0In0&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=106&_nc_ohc=3STc5p6bMNMAX8wCLSD&vs=17854652423504840_589328717&_nc_vs=HBkcFQAYJEdDWGpTQVZPZFh1dWJaTUNBT0JiRTdpUk5WQnBidXFIQUFBQRUAAsgBACgAGAAbAYgHdXNlX29pbAExFQAAJpCwu8%2FGrbc%2FFQIoAkMzLBdAFAAAAAAAABgSZGFzaF9iYXNlbGluZV8yX3YxEQB16AcA&_nc_rid=bbe3ce58a3&ccb=7-4&oe=605E2ACF&oh=7706541986085e8d2a442f3100f5e702&_nc_sid=bab638
/Users/shixuesen/OneDrive/Pictures/instagram/yura_936/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/10000000_1168185566947312_1693223758573978502_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5jbGlwcy5kZWZhdWx0In0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=104&_nc_ohc=D0FrFnecAHYAX-u33rB&vs=17848937384535800_4256096211&_nc_vs=HBksFQAYJEdJQ1dtQUR3NTc5bGRTWUVBSWJERFk4SmluOFhicV9FQUFBRhUAAsgBABUAGCRHTHBXekFscjNZQVgwamtCQUZ2Z0plUE1BUnh2YnFfRUFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMBUAACbwmrWQ8uC0PxUCKAJDMywXQD4AAAAAAAAYEmRhc2hfYmFzZWxpbmVfMV92MREAdf4HAA%3D%3D&_nc_rid=b2ca54748d&ccb=7-4&oe=6061677C&oh=c88c90362732b6af6b248a3ac4e8d18d&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/weiman_the_real_one/ https://scontent-lax3-1.cdninstagram.com/v/t50.16885-16/10000000_287422346194300_3910341378798440836_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjEyODAuaWd0di5kZWZhdWx0In0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=104&_nc_ohc=T4G-jIZtZjgAX-3ddFz&vs=18209025361020542_1654957900&_nc_vs=HBksFQAYJEdJQ1dtQUI4YmRpNmFBVUJBSVRSeWlIRVVrUTJidlZCQUFBRhUAAsgBABUAGCRHSFB3M3drRjBJdl9yX1FCQUhZYnBhR3dkdTVnYnZWQkFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACb8vJztycDYQBUCKAJDMywXQGJxDlYEGJMYEmRhc2hfYmFzZWxpbmVfMV92MREAdewHAA%3D%3D&_nc_rid=8f1b00aafc&ccb=7-4&oe=606164A6&oh=bf9ddd7945b4a3cdb053147e46bdaef4&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/boram__jj/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/167024104_1815376588631817_3942044325993166028_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=109&_nc_ohc=YhNiUEjdOkkAX91VD5P&ccb=7-4&oh=501ed1a91fd314927f3b4c45c5086b90&oe=6089E74E&_nc_sid=6136e7&ig_cache_key=MjUzOTkxODA3MzE3Mzg0NjY5Nw%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/weiman_the_real_one/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/79615348_903629410435215_5874278704738433173_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5zdG9yeS5kZWZhdWx0In0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=103&_nc_ohc=XzlyHme-jssAX9fyNgM&edm=AOVtZ6oAAAAA&vs=17912127361730227_270718654&_nc_vs=HBksFQAYJEdIVFZ2Z1NQZ0FTZTJEVURBSlY0azlOYm9ZVlJidXFIQUFBQRUAAsgBABUAGCRHTEo5LUFtdjRiV2FoelVLQU05S2ZLcVRXTnd2YnBrd0FBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACbmu%2FGjhL%2FRPxUCKAJDMywXQC4AAAAAAAAYEmRhc2hfYmFzZWxpbmVfMV92MREAdegHAA%3D%3D&_nc_rid=aab0d17314&ccb=7-4&oe=60753D3F&oh=21ed37a2c79e1618478d116e6110ca2f&_nc_sid=bab638
/Users/shixuesen/OneDrive/Pictures/instagram/Likes/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/e35/173205557_167251781933216_1150698725227016954_n.jpg?se=7&tp=1&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=1&_nc_ohc=WtORZ2J3Y-UAX_RatNU&edm=APv5SkIAAAAA&ccb=7-4&oh=2b1b884668df7e8e974905edcaf5497f&oe=609CF6BA&_nc_sid=7479f6&ig_cache_key=MjU1MDc4NjM3ODEwNzk3NDI5Nw%3D%3D.2-ccb7-4
/Users/shixuesen/OneDrive/Pictures/instagram/ngoctrinh89/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/98618760_3227004884069355_6044999634251674592_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5zdG9yeS5kZWZhdWx0In0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=103&_nc_ohc=O_mfjDVyUb0AX8STxQP&edm=AOVtZ6oAAAAA&vs=17882073455230920_638136539&_nc_vs=HBksFQAYJEdJak40QVhycTgyZjhYWUxBT0R6NzdvakpfUlRidXFIQUFBQRUAAsgBABUAGCRHRlpSZUFwdVlmS0p1d1FCQUs0T2dWY3R2ZVlIYnBrd0FBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACaQ3Oj61OnDPxUCKAJDMywXQCuZmZmZmZoYEmRhc2hfYmFzZWxpbmVfMl92MREAdegHAA%3D%3D&_nc_rid=76a0e8f923&ccb=7-4&oe=60834C43&oh=d715adacda8bb3840e0bf87c8f995ad5&_nc_sid=bab638

Loading…
Cancel
Save