Browse Source

add code

feature/new_bilibili_and_instagram_sxs20191126
shixuesen 2 years ago
parent
commit
2bb8bf165e
16 changed files with 522 additions and 72 deletions
  1. +5
    -0
      .env.local
  2. +1
    -1
      .idea/php.xml
  3. +11
    -10
      app/Console/Commands/AcfunScrape.php
  4. +2
    -2
      app/Console/Commands/BiliVideoCode.php
  5. +11
    -4
      app/Console/Commands/InstagramScrape.php
  6. +1
    -1
      app/Console/Commands/RenameTest.php
  7. +130
    -3
      app/Console/Commands/TestCommand.php
  8. +4
    -4
      app/Http/Controllers/GooglePhotoController.php
  9. +8
    -1
      app/Http/Controllers/WeiboController.php
  10. +20
    -6
      app/Services/AcfunService.php
  11. +223
    -9
      app/Services/BilibiliServiceV2.php
  12. +9
    -11
      app/Services/FfmpegService.php
  13. +25
    -17
      app/Services/InstagramService.php
  14. +38
    -3
      app/Services/WeiboService.php
  15. +7
    -0
      config/database.php
  16. +27
    -0
      fail.log

+ 5
- 0
.env.local View File

@ -24,6 +24,11 @@ REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
TXY4_REDIS_HOST=127.0.0.1
TXY4_REDIS_PASSWORD=null
TXY4_REDIS_PORT=16379
TXY4_REDIS_CACHE_DB=0
MAIL_DRIVER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525


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

@ -212,7 +212,7 @@
</component>
<component name="PhpUnit">
<phpunit_settings>
<PhpUnitSettings configuration_file_path="$PROJECT_DIR$/phpunit.xml" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" use_configuration_file="true" />
<PhpUnitSettings configuration_file_path="$PROJECT_DIR$/phpunit.xml" custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" phpunit_phar_path="" use_configuration_file="true" />
</phpunit_settings>
</component>
<component name="PsalmOptionsConfiguration">


+ 11
- 10
app/Console/Commands/AcfunScrape.php View File

@ -45,15 +45,15 @@ class AcfunScrape extends Command
// 苏子怡 13651121
$service = new AcfunService();
$upItems = [
10703951 => "几兔灰",
4537972 => "香菜猫饼",
2277346 => "小清晨儿",
13215999 => "kyokyo",
13651121 => "苏子怡",
3540234 => "雾奈奈-",
826046 => "Sakuya十六",
16146427 => "椰汁兔",
36414290 => "你的清清呀",
// 10703951 => "几兔灰",
// 4537972 => "香菜猫饼",
// 2277346 => "小清晨儿",
// 13215999 => "kyokyo",
// 13651121 => "苏子怡",
// 3540234 => "雾奈奈-",
// 826046 => "Sakuya十六",
// 16146427 => "椰汁兔",
// 36414290 => "你的清清呀",
44328882 => "cc君辣",
41347405 => "香波妖精 Gikiki",
66565394 => "舞小喵 w",
@ -65,7 +65,8 @@ class AcfunScrape extends Command
12892608 => "可心喵",
70864147 => "凛凛苏Sue",
1702633 => "扛扛扛扛扛",
71421930 => "慕慕有奶糖"
71421930 => "慕慕有奶糖",
71075628 => "大保健"
// 14047168 => "特喵冲冲"
];
$service = new AcfunService();


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

@ -50,9 +50,9 @@ class BiliVideoCode extends Command
// $bilibili->queryLocalUpVideoList();exit;
// $bilibili->insertDBTest();exit;
// $bilibili->queryPlayList();
// $bilibili->downloadDynamics();exit;
$bilibili->queryUpVideoList(10278125);
// exit;
exit;
// $bilibili->queryDBCollectionList();
// dump($bilibili->requestVideoParts("33483603"));exit;


+ 11
- 4
app/Console/Commands/InstagramScrape.php View File

@ -50,10 +50,17 @@ class InstagramScrape extends Command
// print_r($userList);exit;
$ins = new InstagramService();
$ins->scrapeFeedsV2();
sleep(60*2);
$ins->scrapeUsersV2(89, null);
// $ins->scrapeUsersV2(89, ["lxx.baby", "nyanchan22", "doly0818", "17_chill", "aoi_sola", "sejinming", "tngnlo"]);
// $ins->scrapeFeedsV2();
// sleep(60*2);
// $ins->scrapeUsersV2(89, ["ngoctrinh89", "changchinlan", "na0912mi", "janed_404", "amandacerny", "beargenie", "beauty.leg"]);
$ins->scrapeUsersV2(89, null);
// $ins->scrapeUsersV2(89, ["maggiewu1008", "e_s2_e", "anran.1033", "yura_936", "masami_nagasawa", "jen2jen2_"]);
// $ins->scrapeUsersV2(89, ["candiceswanepoel", "maggiewu1008", "janie.lin", "cxxsomi", "naughty_rabbit_", "cho_hyunyoung", "2km2km", "ms_puiyi", "ms_puiyi"]);
// "candiceswanepoel", "maggiewu1008, janie.lin, cxxsomi, naughty_rabbit_, cho_hyunyoung, 2km2km, ms_puiyi, irishuo_
// sleep(60*2);
// $ins->scrapeUsersV2(89, null);
//
exit;
// $ins->getUserNameById('4156629214');exit;


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

@ -64,7 +64,7 @@ class RenameTest extends Command
// asort($arr);
// dump($rename->getNameLevel());
// dump($arr);exit;
// $rename->rename($path, $prefix);
$rename->rename($path, $prefix);
$rename->splitCustomSizeOfFolder($path, $prefix, 500);exit;
// $rename->rename("/Volumes/WD/tmp/写真图/猫九", "猫九-");


+ 130
- 3
app/Console/Commands/TestCommand.php View File

@ -6,7 +6,10 @@ namespace App\Console\Commands;
use App\Services\GooglePhotoSyncService;
//use App\Services\LiveStreamService;
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request;
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Redis;
class TestCommand extends Command
{
@ -41,6 +44,11 @@ class TestCommand extends Command
*/
public function handle()
{
// $this->test02();
// exit;
$this->test5();exit;
$this->test01();exit;
$this->test04();exit;
// echo strlen("[VLOG] 메이드와 단 둘이 청소하실래요-ㅣ메이드복 입고 청소하기__ㅣ모델 일상 코스프레 브이로그ㅣCleaning Maid Cosplayㅣメイドといっしょに掃除しませんか?");exit;
// $service = new GooglePhotoSyncService();
@ -49,13 +57,14 @@ class TestCommand extends Command
// $service->syncImageFiles();
// exit;
// $baseDir = "/Users/shixuesen/Documents/sync/image";
$baseDir = "/Users/shixuesen/Documents/otherSync";
$dirs = ["tumblr__0048"];
$baseDir = "/Users/shixuesen/Documents/otherSync/very";
$baseDir = "/Users/shixuesen/Downloads/y";
$dirs = ["mv"];
$files = [];
foreach ($dirs as $dir) {
$currentFiles = scandir($baseDir . DIRECTORY_SEPARATOR . $dir);
foreach ($currentFiles as $file) {
if ($file == "." || $file == ".." || $file == ".DS_Store") {
if ($file == "." || $file == ".." || $file == ".DS_Store" || is_dir($baseDir . DIRECTORY_SEPARATOR . $dir . DIRECTORY_SEPARATOR . $file)) {
continue;
}
$files[] = $baseDir . DIRECTORY_SEPARATOR . $dir . DIRECTORY_SEPARATOR . $file;
@ -172,4 +181,122 @@ class TestCommand extends Command
// dump($stat);
}
public function test01()
{
$keys = Redis::connection("cache_txy4")->lrange("file_to_encode", 0, -1);
foreach ($keys as $key) {
if (str_contains($key, "崔兔子")) {
// echo $key;
Redis::connection("cache_txy4")->lrem("file_to_encode", 0, $key);
}
}
// dump($keys);
// echo Redis::connection("cache_txy4")->get("aaaaaa");exit;
}
public function test02()
{
$url = "https://wx4.sinaimg.cn/large/a2ca2fd3ly1hdcbwq251wj20h70fi0zi.jpg";
$urlInfo = parse_url($url);
$host = $urlInfo["host"];
$client = new Client();
$headers = [
'authority' => $host,
'accept' => 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
'accept-language' => 'zh-CN,zh;q=0.9',
'cache-control' => 'no-cache',
'pragma' => 'no-cache',
'referer' => 'https://m.weibo.cn/',
'sec-ch-ua' => '"Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111"',
'sec-ch-ua-mobile' => '?0',
'sec-ch-ua-platform' => '"macOS"',
'sec-fetch-dest' => 'image',
'sec-fetch-mode' => 'no-cors',
'sec-fetch-site' => 'cross-site',
'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36'
];
$request = new Request('GET', $url, $headers);
$res = $client->sendAsync($request)->wait();
return $res->getBody();
}
public function test03()
{
$list = Redis::connection()->smembers("永远别问为什么");
$files = scandir("/Volumes/Xcode");
foreach ($files as $file) {
if ($file == "." || $file == "..") {
continue;
}
if (!in_array($file, $list)) {
echo "$file not in array \n";
}
}
}
public function test04()
{
// $baseDir = "/Volumes/Xcode/";
$baseDir = "/Users/shixuesen/Documents/otherSync/very";
$dirs = ["weibo_image03"];
$files = [];
foreach ($dirs as $dir) {
$currentFiles = scandir($baseDir . DIRECTORY_SEPARATOR . $dir);
foreach ($currentFiles as $file) {
if ($file == "." || $file == ".." || $file == ".DS_Store" || is_dir($baseDir . DIRECTORY_SEPARATOR . $dir . DIRECTORY_SEPARATOR . $file)) {
continue;
}
$files[] = $baseDir . DIRECTORY_SEPARATOR . $dir . DIRECTORY_SEPARATOR . $file;
}
// $files = array_merge($files, $currentFiles);
}
$md5Set = [];
// $newDir = "/Users/shixuesen/Downloads/y/Nagisa魔物喵202003fantia会员合集/魔物喵__001";
// mkdir($newDir);
$i = 0;
foreach ($files as $file) {
if ($file == "." || $file == ".." || $file == ".DS_Store") {
continue;
}
$hash = md5_file($file);
if (array_key_exists($hash, $md5Set)) {
echo "file is same $file, and {$md5Set[$hash]} \n";
// rename($dir . DIRECTORY_SEPARATOR . $file, $newDir . DIRECTORY_SEPARATOR . $file);
// exit;
$i++;
} else {
$md5Set[$hash] = $file;
}
}
echo "all same file count is $i";
exit;
}
public function test5()
{
$dir = "/Volumes/Crucial X6/Image/6001-6050/6001-6050.7z";
$files = scandir($dir);
$set = [];
foreach ($files as $file) {
if ($file == "." || $file == ".." || $file == ".DS_Store") {
continue;
}
preg_match("#NO.\d+\s(\S+)\[#", $file, $matches);
$owner_name = $matches[1];
if (array_key_exists($owner_name, $set)) {
dump("$owner_name exists");
} else {
$set[$owner_name] = 1;
}
// dump($owner_name);
}
}
}

+ 4
- 4
app/Http/Controllers/GooglePhotoController.php View File

@ -36,8 +36,8 @@ class GooglePhotoController extends Controller {
*/
$photosLibraryClient = new PhotosLibraryClient(['credentials' => $credentials]);
// $this->queryAlbumsList($photosLibraryClient);exit;
$this->queryImageListInAlbum($photosLibraryClient, "AN5jk266WOQuZQzWrt9ci-NfP7a5rYDfqsC-72LTMa4D9SeBis41vuAQRGnQ3odxgdo3Zl8pskVh");exit;
// $this->queryAlbumsList($photosLibraryClient);exit;
$this->queryImageListInAlbum($photosLibraryClient, "AN5jk24bD4OEqFqtDy8e_gdAvmRSQAs5xwEHDDpK4mi5Du0c_Hm7iJqk4A0DbaT0eeeQrp39xaKc");exit;
$service = new GooglePhotoSyncService();
// $service->getAuthToken("4/0AX4XfWj_bDRqhnNLf4MGTMCAwt52Q4v6Dz1CLe1sx8I__Qu41z0fhX87I-amFAwpDGY0jA", ['https://www.googleapis.com/auth/photoslibrary'], config('app.albums_authentication_redirect_url'));
@ -61,9 +61,9 @@ class GooglePhotoController extends Controller {
// 1. 获取相册里的照片
// 2. 获取相册列表
// $this->queryAlbumsList($photosLibraryClient);
$this->queryAlbumsList($photosLibraryClient);
// 2. 获取相册列表
// exit;
exit;
$options["pageSize"] = 100;
$options["pageToken"] = "CkgKQnR5cGUuZ29vZ2xlYXBpcy5jb20vZ29vZ2xlLnBob3Rvcy5saWJyYXJ5LnYxLkxpc3RNZWRpYUl0ZW1zUmVxdWVzdBICCGQSogFBSF91UTQyZWo2TWdQb3cyZDVOOHdubldId0JwakJ0cUJwbHk4akV3Qm8tZ2xvTWpuWHdlRHlzX2VBRzRWZkgzUS0yNVdpRlE4cnhGTVVCaEF0ZEp1UFJuZzN4dncta0pIOWZJalZuVk1jbFZVWnpzdzRSVDNvTkt0SXVKNGpDUlVWTnh5NS12MTVhd3BHaTRrY2ZUTEhEeUVrbHVrMUVhRncaGzJvcFczVXpwQ3ZnU1hZTlNUVVQwVmd0V19Ecw";
$pagedResponse = $photosLibraryClient->listMediaItems($options);


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

@ -66,7 +66,14 @@ class WeiboController extends Controller
"腐团儿" => "1076032304291523",
"聂小雨" => "1076032579189065",
"小何同学" => "1076032104580380",
"只有一个9521" => "1076037504338957"
"只有一个9521" => "1076037504338957",
"娜扎工作室" => "2304136001863056",
"刘教師特别授業" => "1076037686776705",
"Nana姐姐的微博" => "1076037764879728",
"小蓝蓝 plus" => "1076037409360499",
"露露" => "1076037731119705"
// "娜扎工作室" => "2304136001863056_-_WEIBO_SECOND_PROFILE_WEIBO",
];


+ 20
- 6
app/Services/AcfunService.php View File

@ -62,17 +62,19 @@ class AcfunService
'authority: www.acfun.cn',
'accept: application/json, text/plain, */*',
'accept-language: zh-CN,zh;q=0.9',
'cache-control: no-cache',
'content-type: application/x-www-form-urlencoded',
'cookie: _did=web_49890374118F8C83; _did=web_49890374118F8C83; csrfToken=z0M8iPhQeBXdQKahCT9eh9IF; cur_req_id=188114995840AAD3_self_2d45c537a4f93b4689463857c3114dd1; cur_group_id=188114995840AAD3_self_2d45c537a4f93b4689463857c3114dd1_0; webp_supported=%7B%22lossy%22%3Atrue%2C%22lossless%22%3Atrue%2C%22alpha%22%3Atrue%2C%22animation%22%3Atrue%7D; Hm_lvt_2af69bc2b378fb58ae04ed2a04257ed1=1676524023,1677578838,1679105811; stochastic=OGh4ZW56ZTE5OGk%3D; acPasstoken=ChVpbmZyYS5hY2Z1bi5wYXNzdG9rZW4ScC3mFmJ0_Ny_jdlp2zX4A9m4Cdsr9h5Pz1Ee1jfyHlfDWB14lyEDrxjlR_wDpBDHlFj2MoPPKJhFw_vhgMWL4oYye4jeI4T-EkCJXSuh19UabKnU00Rj84eEQK-wqRckMqhgZC0Uy5rTTIRkXkrqgDcaEsGnuGb9hF53qaZMO1JuGKUpeyIgPM38QqVI2JkcsDH48S4w8MCRIEl_3M4VqTyPWTyDS2coBTAB; auth_key=572984; ac_username=Nicksxs; acPostHint=e4d65708dfdada24d2843be08d79cff2c1da; ac_userimg=https%3A%2F%2Fimgs.aixifan.com%2Fstyle%2Fimage%2F201907%2FuQ5Vc06d3HSVTjY3VZocT81X40FByVpw.jpg; lsv_js_player_v2_main=e4d400; Hm_lpvt_2af69bc2b378fb58ae04ed2a04257ed1=1679105822',
'cookie: _did=web_49890374118F8C83; _did=web_49890374118F8C83; acPasstoken=ChVpbmZyYS5hY2Z1bi5wYXNzdG9rZW4ScC3mFmJ0_Ny_jdlp2zX4A9m4Cdsr9h5Pz1Ee1jfyHlfDWB14lyEDrxjlR_wDpBDHlFj2MoPPKJhFw_vhgMWL4oYye4jeI4T-EkCJXSuh19UabKnU00Rj84eEQK-wqRckMqhgZC0Uy5rTTIRkXkrqgDcaEsGnuGb9hF53qaZMO1JuGKUpeyIgPM38QqVI2JkcsDH48S4w8MCRIEl_3M4VqTyPWTyDS2coBTAB; auth_key=572984; ac_username=Nicksxs; acPostHint=e4d65708dfdada24d2843be08d79cff2c1da; ac_userimg=https%3A%2F%2Fimgs.aixifan.com%2Fstyle%2Fimage%2F201907%2FuQ5Vc06d3HSVTjY3VZocT81X40FByVpw.jpg; csrfToken=ImnwOlsler0iTnGD_YS1hxQ8; cur_req_id=3800241004A0CFD7_self_2d45c537a4f93b4689463857c3114dd1; cur_group_id=3800241004A0CFD7_self_2d45c537a4f93b4689463857c3114dd1_0; webp_supported=%7B%22lossy%22%3Atrue%2C%22lossless%22%3Atrue%2C%22alpha%22%3Atrue%2C%22animation%22%3Atrue%7D; Hm_lvt_2af69bc2b378fb58ae04ed2a04257ed1=1677578838,1679105811,1680140982; Hm_lpvt_2af69bc2b378fb58ae04ed2a04257ed1=1680141307',
'origin: https://www.acfun.cn',
'pragma: no-cache',
'referer: https://www.acfun.cn/member/favourite',
'sec-ch-ua: " Not A;Brand";v="99", "Chromium";v="102", "Google Chrome";v="102"',
'sec-ch-ua: "Chromium";v="110", "Not A(Brand";v="24", "Google Chrome";v="110"',
'sec-ch-ua-mobile: ?0',
'sec-ch-ua-platform: "macOS"',
'sec-fetch-dest: empty',
'sec-fetch-mode: cors',
'sec-fetch-site: same-origin',
'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.5005.61 Safari/537.36'
'user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36'
),
));
@ -153,9 +155,13 @@ class AcfunService
$mainQl = QueryList::getInstance();
$pCursor = "";
$queried = 0;
$reqId = 1;
do {
$result = $this->requestUpPageApi($upId, $pCursor);
$result = $this->requestUpPageApi($upId, $reqId, $pCursor);
// dump($result);
if (!$result) {
return;
}
$resourceIds = $mainQl->setHtml($result["html"])->find(".video-item")->attrs("resource-id");
$titles = $mainQl->setHtml($result["html"])->find(".video-name")->htmls();
dump($resourceIds);
@ -178,6 +184,7 @@ class AcfunService
}
if (array_key_exists("pcursor", $result)) {
$pCursor = $result["pcursor"];
$reqId ++;
} else {
break;
}
@ -219,12 +226,14 @@ class AcfunService
return $response;
}
public function requestUpPageApi($upId, $pcursor = "")
public function requestUpPageApi($upId, $reqId, $pcursor = "")
{
if ($upId == null) {
return "";
}
$url = "https://m.acfun.cn/upPage/$upId?pagelets=video-list&reqID=4&ajaxpipe=1&userId=$upId&type=3";
$t = time() * 1000;
$url = "https://m.acfun.cn/upPage/$upId?pagelets=video-list&reqID=$reqId&ajaxpipe=1&userId=$upId&type=3&pcursor=$pcursor&t=$t";
// https://m.acfun.cn/upPage/1702633?pagelets=video-list&reqID=1&ajaxpipe=1&userId=1702633&type=3&pcursor=1677145407113&t=1680146711555
if ($pcursor != null && $pcursor != "") {
$url .= "&pcursor=$pcursor";
@ -265,6 +274,11 @@ class AcfunService
// echo $response;
$replaced = str_replace("/*<!-- fetch-stream -->*/", "", $response);
$result = json_decode($replaced, true);
if ($result == null || !array_key_exists("scripts", $result)) {
echo "=========================scripts not exist ===========================\n" . $url;
echo "=========================scripts not exist ===========================\n" . $response;
return false;
}
$scripts = $result["scripts"][0];
preg_match_all("#no_more#", $scripts, $noMore);
if (count($noMore[0]) > 0) {


+ 223
- 9
app/Services/BilibiliServiceV2.php View File

@ -8,13 +8,16 @@ use App\BilibiliUpVideos;
use App\BilibiliVideoParts;
use App\BilibiliVideos;
use App\Repositories\BilibiliVideoRepository;
use DateTime;
use Exception;
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\App;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Redis;
use Psr\Http\Message\{RequestInterface, ResponseInterface};
use GuzzleHttp\{Client, HandlerStack, Middleware, RetryMiddleware};
class BilibiliServiceV2
{
@ -33,12 +36,49 @@ class BilibiliServiceV2
// private $remoteDir = "/data/";
private $remoteDir = "/Volumes/Crucial X6/Video/";
private $mixinKeyEncTab = [
46, 47, 18, 2, 53, 8, 23, 32, 15, 50, 10, 31, 58, 3, 45, 35, 27, 43, 5, 49,
33, 9, 42, 19, 29, 28, 14, 39, 12, 38, 41, 13, 37, 48, 7, 16, 24, 55, 40,
61, 26, 17, 0, 1, 60, 51, 30, 4, 22, 25, 54, 21, 56, 59, 6, 63, 57, 62, 11,
36, 20, 34, 44, 52
];
protected $repository;
protected $client;
public function __construct(BilibiliVideoRepository $repository)
{
$this->repository = $repository;
$maxRetries = 3;
$decider = function (int $retries, RequestInterface $request, ResponseInterface $response = null) use ($maxRetries): bool {
return
$retries < $maxRetries
&& null !== $response
&& 429 === $response->getStatusCode();
};
$delay = function (int $retries, ResponseInterface $response): int {
if (!$response->hasHeader('Retry-After')) {
return RetryMiddleware::exponentialDelay($retries);
}
$retryAfter = $response->getHeaderLine('Retry-After');
if (!is_numeric($retryAfter)) {
$retryAfter = (new DateTime($retryAfter))->getTimestamp() - time();
}
return (int)$retryAfter * 1000;
};
$stack = HandlerStack::create();
$stack->push(Middleware::retry($decider, $delay));
$this->client = new Client(['handler' => $stack]);
}
public function queryPlayList()
@ -76,10 +116,9 @@ class BilibiliServiceV2
// 391073761 女团直拍
// 267781236 韩国女团饭拍直拍
// 23400436 小雪_juvia
$list = BilibiliUpVideos
::orderBy('updated_at', 'asc')
->take(110)
->get();
$list = BilibiliUpVideos::where("id", "<", "150")
->orderBy('id', 'desc')
->get();
// $list = $list->slice(87);
foreach ($list as $item) {
Log::info("schedule queryUpVideoList current up is {$item['up_name']}, started at: " . date("Y-m-d H:i:s"));
@ -88,14 +127,39 @@ class BilibiliServiceV2
$mediaId = $item['mid'];
$videos = [];
$pageNo = 1;
$url = "https://api.bilibili.com/x/space/arc/search?mid={$mediaId}&ps=30&tid=0&keyword=&order=pubdate&jsonp=jsonp&pn=";
$pageAll = 10;
$url = "https://api.bilibili.com/x/space/wbi/arc/search?mid={$mediaId}&ps=30&tid=0&keyword=&pn=";
$pageAll = 2;
// https://api.bilibili.com/x/space/wbi/arc/search?
// mid=363430107&
//ps=30&
//tid=0&
//pn=1&
//keyword=&
//order=pubdate&
//platform=web&
//web_location=1550101&
//order_avoided=true&
//w_rid=a1011501119a6d795f369ec2bafa1af2&
//wts=1685087658
// https://space.bilibili.com/475250/video
for ($i = 1; $i < $pageAll; $i++) {
$curl = curl_init();
$params = [
"mid" => $mediaId,
"ps" => 30,
"tid" => 0,
"keyword" => "",
"order" => "pubdate",
"platform" => "web",
"web_location" => 1550101,
"order_avoided" => true,
"pn" => $i
];
$query = $this->build_params($params);
curl_setopt_array($curl, array(
CURLOPT_URL => "https://api.bilibili.com/x/space/arc/search?mid={$mediaId}&ps=30&tid=0&keyword=&order=pubdate&jsonp=jsonp&pn={$i}",
CURLOPT_URL => "https://api.bilibili.com/x/space/wbi/arc/search?$query",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
@ -730,7 +794,7 @@ class BilibiliServiceV2
}
}
$i++;
$list = BilibiliVideos::simplePaginate(20, null, 'page', $i);
$list = BilibiliVideos::simplePaginate(50, null, 'page', $i);
try {
usleep(random_int(10, 1000) * 1000);
} catch (Exception $e) {
@ -1140,4 +1204,154 @@ done && echo "ok"');
}
return false;
}
public function downloadDynamics()
{
$env = App::environment();
$list = BilibiliUpVideos::orderBy("created_at", "desc")->where("id", "<", "94")->limit(100)->get();
foreach ($list as $item) {
$mid = $item["mid"];
$offset = null;
$response = null;
do {
$jsonResponse = $this->dynamicsRequest($mid, $offset);
$response = json_decode($jsonResponse, true);
if (array_key_exists("code", $response) && $response["code"] == '0' && array_key_exists("data", $response) && array_key_exists("items", $response["data"])) {
$dynamics = $response["data"]["items"];
foreach ($dynamics as $dynamic) {
if ($dynamic["type"] == "DYNAMIC_TYPE_DRAW") {
if (array_key_exists("modules", $dynamic) &&
array_key_exists("module_dynamic", $dynamic["modules"]) &&
array_key_exists("major", $dynamic["modules"]["module_dynamic"]) &&
array_key_exists("draw", $dynamic["modules"]["module_dynamic"]["major"]) &&
array_key_exists("items", $dynamic["modules"]["module_dynamic"]["major"]["draw"])
) {
$imageItems = $dynamic["modules"]["module_dynamic"]["major"]["draw"]["items"];
foreach ($imageItems as $imageItem) {
$imageUrl = $imageItem["src"];
$this->downloadImage($imageUrl, "/Users/shixuesen/Downloads/y/bili", $item["up_name"]);
}
}
}
}
}
if (array_key_exists("data", $response) && array_key_exists("offset", $response["data"])) {
$offset = $response["data"]["offset"];
echo "{$item["up_name"]} offset: $offset \n";
}
usleep(random_int(10, 100) * 100);
} while ($response != null && array_key_exists("data", $response) && array_key_exists("has_more", $response["data"]) && $response["data"]["has_more"]);
}
}
public function dynamicsRequest($mid, $offset)
{
$client = new Client();
$headers = [
'authority' => 'api.bilibili.com',
'accept' => 'application/json, text/plain, */*',
'accept-language' => 'zh-CN,zh;q=0.9',
'cache-control' => 'no-cache',
'origin' => 'https://space.bilibili.com',
'pragma' => 'no-cache',
'referer' => "https://space.bilibili.com/$mid/dynamic",
'sec-ch-ua' => '"Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111"',
'sec-ch-ua-mobile' => '?0',
'sec-ch-ua-platform' => '"macOS"',
'sec-fetch-dest' => 'empty',
'sec-fetch-mode' => 'cors',
'sec-fetch-site' => 'same-site',
'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36'
];
if ($offset != null) {
$url = "https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/space?offset={$offset}&host_mid={$mid}&timezone_offset=-480&features=itemOpusStyle";
} else {
$url = "https://api.bilibili.com/x/polymer/web-dynamic/v1/feed/space?offset=&host_mid={$mid}&timezone_offset=-480&features=itemOpusStyle";
}
$request = new Request('GET', $url, $headers);
$res = $client->sendAsync($request)->wait();
return $res->getBody();
}
public function downloadImage($imageUrl, $path, $upName)
{
$filePathInfo = pathinfo($imageUrl);
$filename = $filePathInfo['basename'];
$request = new Request('GET', $imageUrl);
try {
$res = $this->client->sendAsync($request)->wait();
} catch (\Exception $e) {
Log::error("$upName, $imageUrl, is error " . $e->getMessage());
return;
}
$fileLocalName = $path . DIRECTORY_SEPARATOR . $upName . "_" . $filename;
if (is_file($fileLocalName) && filesize($fileLocalName) > 10000) {
echo $fileLocalName . " exists \n";
} else {
file_put_contents($path . DIRECTORY_SEPARATOR . $upName . "_" . $filename, $res->getBody());
}
}
public function getMixinKey($orig)
{
// '对 imgKey 和 subKey 进行字符顺序打乱编码'
return substr(implode('', array_map(function ($i) use ($orig) {
return $orig[$i];
}, $this->mixinKeyEncTab)), 0, 32);
}
public function encWbi($params, $img_key, $sub_key)
{
// '为请求参数进行 wbi 签名'
$mixin_key = $this->getMixinKey($img_key . $sub_key);
$curr_time = round(time());
$params['wts'] = $curr_time; // 添加 wts 字段
ksort($params); // 按照 key 重排参数
$params = array_map(function ($v) {
return preg_replace("#[!'()*/]#", '', $v); // 过滤 value 中的 "!'()*" 字符
}, $params);
$query = http_build_query($params); // 序列化参数
$wbi_sign = md5($query . $mixin_key); // 计算 w_rid
$params['w_rid'] = $wbi_sign;
return $params;
}
public function getWbiKeys()
{
$img_key = Redis::connection()->get("img_key");
$sub_key = Redis::connection()->get("sub_key");
if ($img_key != null && $sub_key != null) {
return [$img_key, $sub_key];
}
// '获取最新的 img_key 和 sub_key'
$resp = file_get_contents('https://api.bilibili.com/x/web-interface/nav');
$json_content = json_decode($resp, true);
$img_url = $json_content['data']['wbi_img']['img_url'];
$sub_url = $json_content['data']['wbi_img']['sub_url'];
$img_key = substr($img_url, strrpos($img_url, '/') + 1, strrpos($img_url, '.') - strrpos($img_url, '/') - 1);
$sub_key = substr($sub_url, strrpos($sub_url, '/') + 1, strrpos($sub_url, '.') - strrpos($sub_url, '/') - 1);
Redis::connection()->setex("img_key", strtotime('23:59:59')-time(), $img_key);
Redis::connection()->setex("sub_key", strtotime('23:59:59')-time(), $sub_key);
return [$img_key, $sub_key];
}
public function build_params($params)
{
list($img_key, $sub_key) = $this->getWbiKeys();
// dump($img_key);
// dump($sub_key);
$signed_params = $this->encWbi(
$params,
$img_key,
$sub_key
);
// dump($signed_params);exit;
$query = http_build_query($signed_params);
// print_r($signed_params);
return $query;
}
}

+ 9
- 11
app/Services/FfmpegService.php View File

@ -128,8 +128,10 @@ class FfmpegService
public function processVideo($pathFile)
{
$slowFlag = false;
if (date("H") >= 22 || date("H") < 8) {
$slowFlag = true;
if (date("H") >= 6 && date("i") > 30 && date("H") < 9) {
Log::info("H > 6 stopFlag is set");
dump("H > 6 stopFlag is set");
exit;
}
// while () {
// Log::info("now is " . date("Y-m-d H:i:s") . " sleep 5 minutes");
@ -195,16 +197,12 @@ class FfmpegService
Log::info("process target file : $targetFile");
if ($this->getDimension($pathFile)->getWidth() > 3840) {
// $result = shell_exec("/Users/shixuesen/Downloads/ffmpeg -threads 16 -i ". escapeshellarg($pathFile) ." -preset ultrafast -crf 25 -c:v libx265 -x265-params pools=8 -vtag hvc1 " . escapeshellarg($targetFile) . " && echo 'ok'");
if ($slowFlag) {
$result = shell_exec("/Users/shixuesen/Downloads/ffmpeg -i ". escapeshellarg($pathFile) ." -c:v libx265 -x265-params pools=2 -vtag hvc1 -vf \"scale=4096:-1\" " . escapeshellarg($targetFile) . " && echo 'ok'");
} else {
$result = shell_exec("/Users/shixuesen/Downloads/ffmpeg -i ". escapeshellarg($pathFile) ." -c:v libx265 -x265-params pools=8 -vtag hvc1 -vf \"scale=4096:-1\" " . escapeshellarg($targetFile) . " && echo 'ok'");
}
$result = shell_exec("/Users/shixuesen/Downloads/ffmpeg -i ". escapeshellarg($pathFile) ." -c:v libx265 -x265-params pools=8 -vtag hvc1 -vf \"scale=4096:-1\" " . escapeshellarg($targetFile) . " && echo 'ok'");
} else {
if ($slowFlag) {
$result = shell_exec("/Users/shixuesen/Downloads/ffmpeg -threads 2 -i ". escapeshellarg($pathFile) ." -preset fast -c:v libx265 -x265-params pools=2 -vtag hvc1 " . escapeshellarg($targetFile) . " && echo 'ok'");
$result = shell_exec("/Users/shixuesen/Downloads/ffmpeg -threads 2 -i ". escapeshellarg($pathFile) ." -c:v libx265 -x265-params pools=14 -vtag hvc1 " . escapeshellarg($targetFile) . " && echo 'ok'");
} else {
$result = shell_exec("/Users/shixuesen/Downloads/ffmpeg -threads 8 -i ". escapeshellarg($pathFile) ." -preset fast -c:v libx265 -x265-params pools=8 -vtag hvc1 " . escapeshellarg($targetFile) . " && echo 'ok'");
$result = shell_exec("/Users/shixuesen/Downloads/ffmpeg -threads 2 -i ". escapeshellarg($pathFile) ." -c:v libx265 -x265-params pools=14 -vtag hvc1 " . escapeshellarg($targetFile) . " && echo 'ok'");
}
}
// echo $result;
@ -336,8 +334,8 @@ class FfmpegService
Log::error("ffprobe has error just return false for test, exception: ". $e->getMessage());
return false;
}
return false;
// return trim($codecName) == "hevc";
// return false;
return trim($codecName) == "hevc";
}
public function getDimension($file): Dimension


+ 25
- 17
app/Services/InstagramService.php View File

@ -68,7 +68,7 @@ class InstagramService
"queena820628" => 12991274468,
"bitnara1105" => 5849529154,
"mobe_carrie0223" => 566598605,
"mikamikatn" => 4156629214,
"mikamikatn" => 45602633214,
"inkyung97" => 5763414441,
"e_seoa" => 6859472347,
"r_ap82_" => 11599648301,
@ -964,6 +964,7 @@ class InstagramService
"gawonaa" => 6552618014,
"bitnara_daily" => 56599499536,
"bonnie.90106_" => 55798122328,
"zennyrt" => 9676745878,
];
@ -1541,7 +1542,9 @@ class InstagramService
$toQueryUsers = Redis::connection()->lrange(self::INS_USER_KEY, 0, 9);
Redis::connection()->ltrim(self::INS_USER_KEY, 10, -1);
}
$alwaysNeedToQueryUsers = ["bonnie.90106_", "amy00522", "bitnara1105", "zhizhibooty", "_azhua", "exy_s2", "colin.anthony2", "7alice77", "leeesovelys2", "anran.1033", "doly0818", "siawase726", "yifei_cc", "17_chill", "shinapit46", "crissielee_", "boram__jj", "cho_hyunyoung", "cxxsomi", "inkyung97", "na0912mi", "naughty_rabbit_", "sejinming", "zyzyxin222"];
$alwaysNeedToQueryUsers = [];
// $alwaysNeedToQueryUsers = ["bonnie.90106_","jiee_wen", "hazyryu", "mikamikatn", "boram__jj", "cho_hyunyoung", "cxxsomi", "inkyung97", "na0912mi", "naughty_rabbit_", "sejinming", "zyzyxin222"];
// "bonnie.90106_", "amy00522", "bitnara1105", "zhizhibooty", "_azhua", "exy_s2", "colin.anthony2", "7alice77", "leeesovelys2", "anran.1033", "doly0818", "siawase726", "yifei_cc", "17_chill", "shinapit46", "crissielee_",
$toQueryUsers = array_unique(array_merge($alwaysNeedToQueryUsers, $toQueryUsers));
} else {
if (is_array($singleUser)) {
@ -1691,7 +1694,8 @@ class InstagramService
// This will be a null value again when we've reached the last page!
// And we will stop looping through pages as soon as maxId becomes null.
if ($singleUser != null || (is_array($singleUser) && count($singleUser) > 0)) {
if ($count - $existCount > 200) {
if ($count - $existCount > 200 ) {
// || $count > (50 + random_int(0, 20))
Log::info("new count bigger than 100", ['user' => $trueName]);
goto a;
}
@ -2210,24 +2214,26 @@ class InstagramService
'accept-language' => 'zh-CN,zh;q=0.9',
'cache-control' => 'no-cache',
'content-type' => 'application/x-www-form-urlencoded',
'cookie' => 'ig_did=1E87B96C-B061-484F-89A8-C76BF8E11C52; ig_nrcb=1; mid=Y0QEJQAEAAGK3xW8v5Uwszo_cBzM; ds_user_id=361404591; datr=qAREY1W0Mocw3OoikuJcsL1c; csrftoken=o8uqypXnqzLbV4MKBo7ZeI4Tn7s4WwUt; dpr=2; shbid="10286\\054361404591\\0541710812830:01f7d29af58e88473b6537a789f05c33c9f3f0f41339fa59de8559924c7f8c1d51dc5202"; shbts="1679276830\\054361404591\\0541710812830:01f7cc9321450385cca359a813811464e1a637e9e4e8c2080b2e323f8303e37bd9c73a7c"; sessionid=361404591%3AVuUxqubuMmj6HZ%3A25%3AAYfVauWYX0ZMLkdbLaUmu6w7hi0OYzqf9Jz9qHPWqg; rur="NAO\\054361404591\\0541710813556:01f78e24f3dfa349efc89a199901cd50d645eacbe61d0bee262a5684ed303d140ae38986"',
'cookie' => 'ig_did=1E87B96C-B061-484F-89A8-C76BF8E11C52; ig_nrcb=1; mid=Y0QEJQAEAAGK3xW8v5Uwszo_cBzM; datr=qAREY1W0Mocw3OoikuJcsL1c; ds_user_id=361404591; dpr=2; csrftoken=CFl1Ud94y0bme7hQP8Uvp8Xl4sKcFViX; shbid="16067\\054361404591\\0541716949395:01f70eef8d26bcb8f7f993fc31a064d0ee750f7e2b3649a97f4749d0bcd9f95d657910dc"; shbts="1685413395\\054361404591\\0541716949395:01f7e9d7690bc741b7e96b090605dad786de17d15651400beab2a35ea38e28ded2f59495"; sessionid=361404591%3AfFydERGFX9GaEm%3A10%3AAYc8JRCrHUvc9fh9IM2HBM5cX6oontDKzd6Ea01oMA; fbm_124024574287414=base_domain=.instagram.com; fbsr_124024574287414=L9kVkvYFJVPwU5BRVImtTBmcvaV1dkQ0ydKNAcOEhZ8.eyJ1c2VyX2lkIjoiMTAwMDA3ODU5ODI1MDQ3IiwiY29kZSI6IkFRQXp0UzBiQTVnYnNBSl9pNW1Dd01idS1rbEZuRENvTHZqRnpkNFplR01qb1FZekRDS3BQY3huZGpYSU04NzltM3hwQnZkbFhQbEh5cFlLMU5USEJ4RnV6ejZEZFN2MFREejhWdHd1dF85MHAtWEdEVENfZDhpdEpKM3JPY1ptLS1KSHNROXJIemtuZkFyNE5SdFpRY19RNUJSd2lGZmRndUd2MUFXU3ZOSFV1RW40TUE0d1hKYm5ZMV80WjFzNktGdEZ3UXVDR3MwUGdIOFQ2QnltQ0lzeGh6NHA2UWgtdlp0VGFoR0Q1VlBMZ1hqZG9fVDM4bE9xREs4SzYzX1dlZ3JySno0S2dCMkRXdlJuUGc1OTRqcXU5WGlUNUFMbURhbUMxdjFlYlVFQnA2S20ta2drYmdPMXMxR2JIQmEzbEw3OS0zelNreUVmekF3X2NsVUdsYTFSIiwib2F1dGhfdG9rZW4iOiJFQUFCd3pMaXhuallCQUhJcWNmdFBBRkhNcDZuVlU4ZDVSaWs1WkFCYWtUN3NTUE1VWkN2WkE2cHNxWkFZQ21sWXF6YUQ1Tk5GQTNUa0JSQjcxTmxTWHhRZTVVSEEzdm9CbGlsODJ3ZFVxMjZnZm91TUxTVWFucDNCejlpaDlFRFhGT1RnaEN0SnVEbGE3clpCbnNIWElqMGlCbnNMMUhOSzZ3Z0FaQ25jOVY3TVpDWkFJaVpCQU9BbHRLNDRkZzVuYkVUQVpEIiwiYWxnb3JpdGhtIjoiSE1BQy1TSEEyNTYiLCJpc3N1ZWRfYXQiOjE2ODU0MTM4ODZ9; rur="NAO\\054361404591\\0541716949889:01f7a134fbbef26c1e76c0c6ed205588018f90a91254d1626ab18e1df4c3a418faa2853b"',
'origin' => 'https://www.instagram.com',
'pragma' => 'no-cache',
'referer' => 'https://www.instagram.com/',
'sec-ch-prefers-color-scheme' => 'light',
'sec-ch-ua' => '"Chromium";v="110", "Not A(Brand";v="24", "Google Chrome";v="110"',
'sec-ch-ua' => '"Chromium";v="112", "Google Chrome";v="112", "Not:A-Brand";v="99"',
'sec-ch-ua-full-version-list' => '"Chromium";v="112.0.5615.137", "Google Chrome";v="112.0.5615.137", "Not:A-Brand";v="99.0.0.0"',
'sec-ch-ua-mobile' => '?0',
'sec-ch-ua-platform' => '"macOS"',
'sec-ch-ua-platform-version' => '"12.6.0"',
'sec-fetch-dest' => 'empty',
'sec-fetch-mode' => 'cors',
'sec-fetch-site' => 'same-origin',
'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36',
'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36',
'viewport-width' => '1512',
'x-asbd-id' => '198387',
'x-csrftoken' => 'o8uqypXnqzLbV4MKBo7ZeI4Tn7s4WwUt',
'x-asbd-id' => '129477',
'x-csrftoken' => 'CFl1Ud94y0bme7hQP8Uvp8Xl4sKcFViX',
'x-ig-app-id' => '936619743392459',
'x-ig-www-claim' => 'hmac.AR2DN3JP5T1uzerp-Udyl58luFekDMO1MUYZolRys4KAvCnY',
'x-instagram-ajax' => '1007137483',
'x-ig-www-claim' => 'hmac.AR2DN3JP5T1uzerp-Udyl58luFekDMO1MUYZolRys4KAvCTz',
'x-instagram-ajax' => '1007579192',
'x-requested-with' => 'XMLHttpRequest'
];
$options = [
@ -2303,22 +2309,24 @@ class InstagramService
'accept' => '*/*',
'accept-language' => 'zh-CN,zh;q=0.9',
'cache-control' => 'no-cache',
'cookie' => 'ig_did=1E87B96C-B061-484F-89A8-C76BF8E11C52; ig_nrcb=1; mid=Y0QEJQAEAAGK3xW8v5Uwszo_cBzM; ds_user_id=361404591; datr=qAREY1W0Mocw3OoikuJcsL1c; csrftoken=o8uqypXnqzLbV4MKBo7ZeI4Tn7s4WwUt; dpr=2; shbid="10286\\054361404591\\0541710812830:01f7d29af58e88473b6537a789f05c33c9f3f0f41339fa59de8559924c7f8c1d51dc5202"; shbts="1679276830\\054361404591\\0541710812830:01f7cc9321450385cca359a813811464e1a637e9e4e8c2080b2e323f8303e37bd9c73a7c"; sessionid=361404591%3AVuUxqubuMmj6HZ%3A25%3AAYfVauWYX0ZMLkdbLaUmu6w7hi0OYzqf9Jz9qHPWqg; rur="NAO\\054361404591\\0541710812852:01f76d935ed50ff550dbf89bb5f923ab7d02cb0ac4fc6bc8ff913d9232e56beed0c17b72"',
'cookie' => 'ig_did=1E87B96C-B061-484F-89A8-C76BF8E11C52; ig_nrcb=1; mid=Y0QEJQAEAAGK3xW8v5Uwszo_cBzM; datr=qAREY1W0Mocw3OoikuJcsL1c; ds_user_id=361404591; dpr=2; csrftoken=CFl1Ud94y0bme7hQP8Uvp8Xl4sKcFViX; shbid="16067\\054361404591\\0541716949395:01f70eef8d26bcb8f7f993fc31a064d0ee750f7e2b3649a97f4749d0bcd9f95d657910dc"; shbts="1685413395\\054361404591\\0541716949395:01f7e9d7690bc741b7e96b090605dad786de17d15651400beab2a35ea38e28ded2f59495"; sessionid=361404591%3AfFydERGFX9GaEm%3A10%3AAYc8JRCrHUvc9fh9IM2HBM5cX6oontDKzd6Ea01oMA; fbm_124024574287414=base_domain=.instagram.com; fbsr_124024574287414=5BhPy3xcwHNWy1YFi8Wok9t4T5MmacABKqStGCMBouI.eyJ1c2VyX2lkIjoiMTAwMDA3ODU5ODI1MDQ3IiwiY29kZSI6IkFRQ2drOGExb05lZXNUb1JBQzBteG4xV3JoQUVyYXQyR0RJczdnRlUwYXlVdVlGTkFBNlZiMTBWNC1aUDJKaDdTSkVLS1pwTDN2bHkxZG9UVTVpSXhQcHB0bU15QXhiMWN6MjVjdm9jTDBZSTlKdENoRDhWU3o0aERGaVRqS3FRQUdaNWJ6NG9laVFzU0ZkRDFMdm5iTndoajR1OS1jLW5GLXZXaDVKb0dIbUY1VENqNTM4aDJNYzRaQ2VQNjlLb0xJTExrMm5RYVBLNVIxUDljWDZrUzEySlJvTmtPQlpJNDM0S2RQN2ozVnhpelRRRU5uVUhlM09BYm16WUdIM3ZNUTlxR3ZNSm51UHdXbDBIZVF6U1ltUmt5OS1iRU1ueFZyb3hMR0pIOW1hOXYzb21VNURvMXhCMWJ4c094enJOZjRqQXpBSHBOazJuOGJpRkpmalVidlVMIiwib2F1dGhfdG9rZW4iOiJFQUFCd3pMaXhuallCQU05R2NQTlBXb2pQNkE5Umh0UTF5RVNDSWVSVVBUQ01mRkw2cXBockhqQUFrdzdVdzB6ME11RjQ0WVpBNTc1Nmo4cXJzbnFtemZVVGk4UVpDdjlaQXlTQ0taQWFyalpBSnVaQUpLMFpBanVFa3Z2VndMbVdWa05WWExHMnRtQTNVZjFlWkJYeUxmQTVOUjI5THYzVTdIYW1pWkNDUnh4R1JxNVVsYm03cVlyZWhSWkNSQTYyanhKVDBaRCIsImFsZ29yaXRobSI6IkhNQUMtU0hBMjU2IiwiaXNzdWVkX2F0IjoxNjg1NDEzNDAxfQ; rur="NAO\\054361404591\\0541716949402:01f7509be66ac75e565c9d7c696b9b0dbd0250d0cc7339c745db84662c633f6d9aa2b055"',
'pragma' => 'no-cache',
'referer' => 'https://www.instagram.com/yifaer_chen/',
'referer' => 'https://www.instagram.com/cho_hyunyoung/',
'sec-ch-prefers-color-scheme' => 'light',
'sec-ch-ua' => '"Chromium";v="110", "Not A(Brand";v="24", "Google Chrome";v="110"',
'sec-ch-ua' => '"Chromium";v="112", "Google Chrome";v="112", "Not:A-Brand";v="99"',
'sec-ch-ua-full-version-list' => '"Chromium";v="112.0.5615.137", "Google Chrome";v="112.0.5615.137", "Not:A-Brand";v="99.0.0.0"',
'sec-ch-ua-mobile' => '?0',
'sec-ch-ua-platform' => '"macOS"',
'sec-ch-ua-platform-version' => '"12.6.0"',
'sec-fetch-dest' => 'empty',
'sec-fetch-mode' => 'cors',
'sec-fetch-site' => 'same-origin',
'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36',
'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36',
'viewport-width' => '1512',
'x-asbd-id' => '198387',
'x-csrftoken' => 'o8uqypXnqzLbV4MKBo7ZeI4Tn7s4WwUt',
'x-asbd-id' => '129477',
'x-csrftoken' => 'CFl1Ud94y0bme7hQP8Uvp8Xl4sKcFViX',
'x-ig-app-id' => '936619743392459',
'x-ig-www-claim' => 'hmac.AR2DN3JP5T1uzerp-Udyl58luFekDMO1MUYZolRys4KAvCnY',
'x-ig-www-claim' => 'hmac.AR2DN3JP5T1uzerp-Udyl58luFekDMO1MUYZolRys4KAvCTz',
'x-requested-with' => 'XMLHttpRequest'
];
$url = "https://i.instagram.com/api/v1/feed/user/{$userId}/?count=12";


+ 38
- 3
app/Services/WeiboService.php View File

@ -2,6 +2,8 @@
namespace App\Services;
use App\ImageRecord;
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Log;
@ -46,6 +48,8 @@ class WeiboService
// file_put_contents( $fname , $content );
$decoded_json = json_decode($content, true);
$cards = $decoded_json['data']['cards'];
// $cards = array_slice($cards, 3, 1);
// Log::info(json_encode($cards));exit;
foreach ($cards as $card) {
if (!array_key_exists("mblog", $card)) {
continue;
@ -55,8 +59,10 @@ class WeiboService
// if (!file_exists($subdir)) {
// mkdir($subdir);
// }
echo json_encode($mblog);
// echo json_encode($mblog);
Log::info("mblog info: " . json_encode($mblog));
if (array_key_exists("pics", $mblog)) {
Log::info("-------enter 1");
$pics = $mblog['pics'];
$user = Arr::get($mblog, "user", []);
$text = Arr::get($mblog, "text", '');
@ -83,6 +89,7 @@ class WeiboService
// }
// }
} else if (array_key_exists("retweeted_status", $mblog)) {
Log::info("-------enter 2");
if (array_key_exists("pics", $mblog["retweeted_status"])) {
$pics = $mblog["retweeted_status"]['pics'];
# code...
@ -93,10 +100,13 @@ class WeiboService
# code...
} else if (array_key_exists("page_info", $mblog) && array_key_exists("media_info", $mblog["page_info"])) {
# code...
Log::info("-------enter 3");
Log::info("page_info: ". json_encode($mblog["page_info"]));
$page_info = $mblog["page_info"];
$media_info = $mblog["page_info"]["media_info"];
$medis_urls = $mblog["page_info"]["urls"];
$video_url = Arr::get($medis_urls, "mp4_720p_mp4", "");
Log::info("video_urls: " . $video_url);
if ($video_url == "") {
$video_url = Arr::get($medis_urls, "mp4_hd_url", "");
}
@ -245,7 +255,7 @@ class WeiboService
$file_name = $subDir . DIRECTORY_SEPARATOR . $picName . "." . $picExt;
$baseName = $picName . "." . $picExt;
if (!file_exists($file_name) && !$this->checkFileHasDownload($baseName)) {
$pic_content = file_get_contents($pic_url);
$pic_content = $this->downloadImg($pic_url);
// echo $pic_content;
file_put_contents($file_name, $pic_content);
$this->files[] = $baseName;
@ -255,6 +265,31 @@ class WeiboService
}
}
public function downloadImg($url)
{
$urlInfo = parse_url($url);
$host = $urlInfo["host"];
$client = new Client();
$headers = [
'authority' => $host,
'accept' => 'image/avif,image/webp,image/apng,image/svg+xml,image/*,*/*;q=0.8',
'accept-language' => 'zh-CN,zh;q=0.9',
'cache-control' => 'no-cache',
'pragma' => 'no-cache',
'referer' => 'https://m.weibo.cn/',
'sec-ch-ua' => '"Google Chrome";v="111", "Not(A:Brand";v="8", "Chromium";v="111"',
'sec-ch-ua-mobile' => '?0',
'sec-ch-ua-platform' => '"macOS"',
'sec-fetch-dest' => 'image',
'sec-fetch-mode' => 'no-cors',
'sec-fetch-site' => 'cross-site',
'user-agent' => 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/111.0.0.0 Safari/537.36'
];
$request = new Request('GET', $url, $headers);
$res = $client->sendAsync($request)->wait();
return $res->getBody();
}
function process_video($video_url, $subdir, $video_name)
{
Log::info("video_url: " . $video_url);
@ -303,7 +338,7 @@ class WeiboService
}
public function scrapeWeiboComments($content) {
}


+ 7
- 0
config/database.php View File

@ -126,6 +126,13 @@ return [
'database' => env('REDIS_CACHE_DB', 1),
],
'cache_txy4' => [
'host' => env('TXY4_REDIS_HOST', '127.0.0.1'),
'password' => env('TXY4_REDIS_PASSWORD', null),
'port' => env('TXY4_REDIS_PORT', 16379),
'database' => env('TXY4_REDIS_CACHE_DB', 1),
],
],
];

+ 27
- 0
fail.log View File

@ -2771,3 +2771,30 @@
/Users/shixuesen/OneDrive/Pictures/instagram/shinapit46/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/333812454_199637476048632_4591223738887286501_n.webp?stp=dst-jpg_e35&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=100&_nc_ohc=FJ9l_3smNHoAX_nEuJo&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzA0OTExNDk1NjQwNzgzMzY1Ng%3D%3D.2-ccb7-5&oh=00_AfBF5NrM2CqjLXBJfJHMKu__34W1hlxMwXBchXXe1Z2qWQ&oe=640589E2&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/shinapit46/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/334218038_762443441819964_4415681788775980429_n.webp?stp=dst-jpg_e35&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=100&_nc_ohc=49gREt8DAKoAX_H1urc&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzA0OTExMzE4MDM5MzA1ODU1Nw%3D%3D.2-ccb7-5&oh=00_AfCN-af6ApbOzxVC1J9WljbNTvJ3JjtGstF8iuVr9l6kzA&oe=6404DF58&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/yifei_cc/ https://scontent-lax3-1.cdninstagram.com/v/t66.30100-16/10000000_3350498921867992_1199864389448827511_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjEwODAuY2xpcHMuaGlnaCIsInFlX2dyb3VwcyI6IltcImlnX3dlYl9kZWxpdmVyeV92dHNfb3RmXCJdIn0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=104&_nc_ohc=KZF8w_5QIb0AX8Nv_ep&edm=ABmJApABAAAA&vs=769980204489005_1297028759&_nc_vs=HBksFQAYJEdJQ1dtQURZNmc3U1F1Y0xBSGNDdlJkT3hxWVFicFIxQUFBRhUAAsgBABUAGCRHTElMOEFLdUYwakF6cndBQURuTExudXJ0WFZHYnBSMUFBQUYVAgLIAQAoABgAGwAVAAAmyprWgZGQ%2Bz8VAigCQzMsF0BlcQ5WBBiTGBJkYXNoX2hpZ2hfMTA4MHBfdjERAHX%2BBwA%3D&ccb=7-5&oh=00_AfC-7KhPX_Hgl_eyHz-5FLuX2_rOBJEGIiae26Bs_vNswQ&oe=64102159&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/doly0818/ https://scontent-lax3-1.cdninstagram.com/o1/v/t16/f1/m82/5846546C73E0665AEA9420B6B9CCB8A4_video_dashinit.mp4?efg=eyJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSIsInZlbmNvZGVfdGFnIjoidnRzX3ZvZF91cmxnZW4uNjQwLmNsaXBzLmJhc2VsaW5lIn0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=102&vs=1834925800186288_3854764589&_nc_vs=HBkcFQIYT2lnX3hwdl9yZWVsc19wZXJtYW5lbnRfcHJvZC81ODQ2NTQ2QzczRTA2NjVBRUE5NDIwQjZCOUNDQjhBNF92aWRlb19kYXNoaW5pdC5tcDQVAALIAQAoABgAGwAVAAAm0LTanNKQwz8VAigCQzMsF0ArzMzMzMzNGBJkYXNoX2Jhc2VsaW5lXzFfdjERAHX%2BBwA%3D&ccb=9-4&oh=00_AfCyki-C5d2wX_rD_BFvK2kIPh5Rs2P7V4J3nOYMxjU4VA&oe=641B62D9&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/doly0818/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/306088673_784529202669973_6631828299179648744_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=101&_nc_ohc=mvQ_YWo09Y4AX-A6khI&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MjkyMzMwNTkyNjYzMTc0OTk0NA%3D%3D.2-ccb7-5&oh=00_AfAtmUd1yBkSCHZ1Qu0XRrNJBK1kNmc_muMB3Coo-bgWhA&oe=641E9FED&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/doly0818/ https://scontent-lax3-2.cdninstagram.com/v/t50.2886-16/305124165_598769655039510_1933641232736451451_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5jbGlwcy5oaWdocHJvZmlsZS1iYXNlbGluZSIsInFlX2dyb3VwcyI6IltcImlnX3dlYl9kZWxpdmVyeV92dHNfb3RmXCJdIn0&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=106&_nc_ohc=DmQRSbL4218AX_gxdIK&edm=ABmJApABAAAA&vs=1023702468270994_860552630&_nc_vs=HBksFQAYJEdFWFRMeElXUnBmc2t5QUNBSHY3VGRCMHJOVWFicV9FQUFBRhUAAsgBABUAGCRHRmZvQlJKbTVnN1pDNE1CQUU4aXg4aEVoRk1GYnFfRUFBQUYVAgLIAQAoABgAGwAVAAAmjJT22p2Y7z8VAigCQzMsF0AriDEm6XjVGB5kYXNoX2hpZ2hwcm9maWxlLWJhc2VsaW5lXzFfdjERAHX%2BBwA%3D&ccb=7-5&oh=00_AfBXqw3CFdbhU4xmGbndM_uwvpXCsKJm8J7GLAqCCmSXXA&oe=641B8A7C&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/doly0818/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/305361102_139069971899385_7510875558892705482_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjQ4MC5jbGlwcy5iYXNlbGluZSIsInFlX2dyb3VwcyI6IltcImlnX3dlYl9kZWxpdmVyeV92dHNfb3RmXCJdIn0&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=109&_nc_ohc=PLLlJVO3JsUAX90sdCT&edm=ABmJApABAAAA&vs=1254846885266196_46387278&_nc_vs=HBksFQAYJEdNNXdNeEw1STBiQWUzNEFBTXFXOXNlRy1UdG9icV9FQUFBRhUAAsgBABUAGCRHTjI4TWhLaDBRZ3lQMUFFQU5ELWxGbGM3TnRmYnFfRUFBQUYVAgLIAQAoABgAGwAVAAAmlt3htI%2FEuD8VAigCQzMsF0AkVP3ztkWiGBJkYXNoX2Jhc2VsaW5lXzFfdjERAHX%2BBwA%3D&ccb=7-5&oh=00_AfBs8QTJvCzpgi7geCd6ARWx44s4oD4_WBAPdE1-hnV8QQ&oe=641B68FE&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/doly0818/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/302566877_471591661539634_7387245564608654630_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=110&_nc_ohc=61-ysoJ2GJcAX_V8Egz&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MjkxODk2NDIyMDAzMzUwMDAwOA%3D%3D.2-ccb7-5&oh=00_AfDb3z1kIQquOqUstQ-lLM4iWCbZw3a3Z2y4jkA_nVWIAQ&oe=641F7026&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/doly0818/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/305001137_611317280348187_5078299659422184300_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=103&_nc_ohc=CI0d-jyt9KQAX_6KHKH&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MjkxODk2NDIyMDAzMzU2MDQyMA%3D%3D.2-ccb7-5&oh=00_AfAMjbxKRt5qjonUfmj0NgwiBK3ICHF38g68vH1CQOdL2g&oe=641E343B&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/doly0818/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/305018179_3261658000789252_5515474327167614441_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=104&_nc_ohc=D6k58qRmnf4AX8S1zlR&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MjkxODk2NDIyMDA1ODg0ODAzNw%3D%3D.2-ccb7-5&oh=00_AfDZ7LIW7qBOH3OGlf7MSTz_tgyJX1viNWxAiOy9K93d5g&oe=641E934E&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/ms_puiyi/ https://scontent-sjc3-1.cdninstagram.com/v/t51.2885-15/337421739_1216479642343049_8410880872104146798_n.jpg?stp=dst-jpg_e15&_nc_ht=scontent-sjc3-1.cdninstagram.com&_nc_cat=1&_nc_ohc=npBktsRTy0UAX8hXOTH&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzA2NDg1MDE3NjU2ODM0ODM4OQ%3D%3D.2-ccb7-5&oh=00_AfCl4P4h4DoOlKFS0Z1JGvTfF_jW0L4q91a1C5JsdProoQ&oe=64233C6C&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/ms_puiyi/ https://scontent-sjc3-1.cdninstagram.com/v/t51.2885-15/337306479_2336046279922454_9056320335810269011_n.jpg?stp=dst-jpg_e15&_nc_ht=scontent-sjc3-1.cdninstagram.com&_nc_cat=1&_nc_ohc=qgK5KFU9GuEAX_xnoVa&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzA2NDg1MDE3NzgxNTc4MDk1MA%3D%3D.2-ccb7-5&oh=00_AfAutpSD5f0vyy0n0zTob0ZEE1SIjgQzUAfh-WkHM_PkSA&oe=64219F9E&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/ngoctrinh89/ https://scontent-lax3-2.cdninstagram.com/v/t50.2886-16/20130235_151752535397634_7513382081271955456_n.mp4?efg=eyJxZV9ncm91cHMiOiJbXCJpZ19wcm9ncmVzc2l2ZV91cmxnZW4ucHJvZHVjdF90eXBlLmZlZWRcIl0ifQ&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=106&_nc_ohc=MNRZQ3-cQH0AX88I0Na&edm=ABmJApABAAAA&ccb=7-5&oh=00_AfD9bhIkZBLrdKT729eyQLlH3Ai-WNMuOzWbFzrAwA6dig&oe=6428975F&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/parlovetati/ https://scontent-lax3-2.cdninstagram.com/v/t50.2886-16/10000000_245196011073450_3978577606703858329_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5pZ3R2LmRlZmF1bHQiLCJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSJ9&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=106&_nc_ohc=nXMrQTxFlmMAX__4nEm&edm=ABmJApABAAAA&vs=17926200065077094_1786842476&_nc_vs=HBksFQAYJEdJQ1dtQUNxN3lNbEFkOEFBSmxDNlA1QXZ6WTNicUNCQUFBRhUAAsgBABUAGCRHR2daT2hBS0Nnb0o3MVlDQU03TTN1OWtlaFlmYnFDQkFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACaKmqvc39XgPxUCKAJDMywXQIRqysCDEm8YEmRhc2hfYmFzZWxpbmVfMV92MREAdewHAA%3D%3D&ccb=7-5&oh=00_AfDYFEFAeo5lktgvJBqWcxa8RVJlQdKRSpMZfiPRsMOCfg&oe=64299384&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/parlovetati/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/10000000_816231449228512_5275018916717540040_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5pZ3R2LmRlZmF1bHQiLCJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSJ9&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=104&_nc_ohc=VvMcxZsDxakAX9ocPYz&edm=ABmJApABAAAA&vs=17947165330715929_1686556750&_nc_vs=HBksFQAYJEdJQ1dtQURnOUpXeFdfWUNBTWd5YXFyQm9UUkpicUNCQUFBRhUAAsgBABUAGCRHQjh2TFJCYnhJWWNUUVFFQUpkeFdFUU1PY2d6YnFDQkFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACaEoY3t3Z%2FOPxUCKAJDMywXQIf8ZFocrAgYEmRhc2hfYmFzZWxpbmVfMV92MREAdewHAA%3D%3D&ccb=7-5&oh=00_AfDnFfx6juYdYgKHYBr_3cnh7QBqsvVvyS8gqMWJiFRwQw&oe=642958B1&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/parlovetati/ https://scontent-lax3-1.cdninstagram.com/v/t50.2886-16/10000000_139437671818534_5289898710386471027_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5pZ3R2LmRlZmF1bHQiLCJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSJ9&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=110&_nc_ohc=lc8Rr9pNX2wAX8KGfQt&edm=ABmJApABAAAA&vs=17947752697636528_1895491438&_nc_vs=HBksFQAYJEdJQ1dtQUFtcGVWYzBYNEFBSFB3WVpyWmZtbEpicUNCQUFBRhUAAsgBABUAGCRHTlA4S3hESTV3MG5PdHdRQU5uZ2hJV1lhekp4YnFDQkFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACawu5%2FNpoT1PxUCKAJDMywXQJJg7peNT98YEmRhc2hfYmFzZWxpbmVfMV92MREAdewHAA%3D%3D&ccb=7-5&oh=00_AfBjqWxCiruBiLsI_jEVBS4vfSiEKQVCqAcv8QH3oNA-Tg&oe=64299377&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/parlovetati/ https://scontent-lax3-2.cdninstagram.com/v/t50.2886-16/10000000_1243738766137779_3185429725621617173_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5pZ3R2LmRlZmF1bHQiLCJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSJ9&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=103&_nc_ohc=7T1YP-72N2UAX9QUkSt&edm=ABmJApABAAAA&vs=17917081925055221_998335223&_nc_vs=HBksFQAYJEdJQ1dtQUN6V1ZsLUxHc0VBQldDcFZSMTZ6UXNicUNCQUFBRhUAAsgBABUAGCRHSUx6RmhBS1FRRnh3bEVCQUVGMnBEMHkyUGRCYnFDQkFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACbI7Pnotb7uQBUCKAJDMywXQJWFSLQ5WBAYEmRhc2hfYmFzZWxpbmVfMV92MREAdewHAA%3D%3D&ccb=7-5&oh=00_AfDlPwg8jkxK-UCR0YgszmEOhNEfSldm79XyzWSS06-Eyg&oe=642951A2&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/parlovetati/ https://scontent-lax3-2.cdninstagram.com/v/t50.2886-16/10000000_818668099004730_3134112962501818641_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5pZ3R2LmRlZmF1bHQiLCJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSJ9&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=106&_nc_ohc=pBAkz9vHdBgAX_5tMRx&edm=ABmJApABAAAA&vs=17873430806254603_239911059&_nc_vs=HBksFQAYJEdJQ1dtQUE2NlRvRmtfZ0NBQkU1M2xjaW0zNHJicUNCQUFBRhUAAsgBABUAGCRHRHBCT1FtX1dDNlZYa0FFQUJsSThNV010dGhsYnFDQkFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACaW3Z7IzPK%2FPxUCKAJDMywXQI4llYEGJN0YEmRhc2hfYmFzZWxpbmVfMV92MREAdewHAA%3D%3D&ccb=7-5&oh=00_AfCPSPtP-wSAlKwGEBEO61TbzN1qrCRKv86DGJlLHnqAEg&oe=64299EE1&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/parlovetati/ https://scontent-lax3-2.cdninstagram.com/v/t50.2886-16/10000000_607349996700251_264575771520038342_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjcyMC5pZ3R2LmRlZmF1bHQiLCJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSJ9&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=111&_nc_ohc=heHUslkae_UAX-l3CL3&edm=ABmJApABAAAA&vs=18083510356236989_432273197&_nc_vs=HBksFQAYJEdJQ1dtQUJid3M2d1lTZ0NBTVoxb0MxRDlxc0RicUNCQUFBRhUAAsgBABUAGCRHSUNXbUFBVGFrc01TaUlCQUlqQkVJV09aOVlhYnFDQkFBQUYVAgLIAQAoABgAGwGIB3VzZV9vaWwBMRUAACb6wd6R67afQBUCKAJDMywXQJypul41P30YFWRhc2hfYmFzZWxpbmVfNzIwcF92MREAdewHAA%3D%3D&ccb=7-5&oh=00_AfCGPmAnGhTcVsWapAUxpJejxk6lxRspmgwIIiXK3FiQXQ&oe=6429DFDD&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/jeonjisu92/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/341412046_158039300251202_4524950755884184369_n.jpg?stp=dst-jpg_e15&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=102&_nc_ohc=ut6RkQ2VYFEAX8FWov_&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzA4MzQzNzk3MDAwNTczNTk2Mg%3D%3D.2-ccb7-5&oh=00_AfCincNWSWVG_QMs2qhZFkXxku22bHMlfBbSuPQ1T5XrGw&oe=644C775F&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/jeonjisu92/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/341924248_788079609196411_3832985151774792148_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=107&_nc_ohc=SirlS_gyozMAX8k0qwD&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzA4MzQzODc1NDQ0MTI3NDcyNg%3D%3D.2-ccb7-5&oh=00_AfAXY2SbjeZFwzWY06dSBL4psEEguXdZoMPvcjHyZXp89Q&oe=644C5BB4&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/amberchenslife/ https://scontent-lax3-2.cdninstagram.com/v/t66.30100-16/10000000_966609704344935_1907735401525748622_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjEwODAuY2xpcHMuYmFzZWxpbmUiLCJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSJ9&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=103&_nc_ohc=wrFCWP2NfdkAX8hQ_GP&edm=ABmJApABAAAA&vs=944047243415528_3241796991&_nc_vs=HBksFQAYJEdJQ1dtQUJuWFJCY0lHOERBSTRqWVhVOW8za2FicFIxQUFBRhUAAsgBABUAGCRHRWg0c0FrcktfOWl5RU1EQVBjNGhxX0VDazFDYnBSMUFBQUYVAgLIAQAoABgAGwAVAAAmgtusyrTpgkAVAigCQzMsF0BN92yLQ5WBGBZkYXNoX2Jhc2VsaW5lXzEwODBwX3YxEQB1%2FgcA&ccb=7-5&oh=00_AfA6r3msZo0dUDrqHPifPQ-wSeWkco0IbwnBzpmsexbipQ&oe=645A1E27&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/lurehsu/ https://scontent-lax3-2.cdninstagram.com/v/t51.2885-15/345238611_605050394683705_2910951418340466386_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-2.cdninstagram.com&_nc_cat=101&_nc_ohc=KXMXWTAX2A8AX-U71YP&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzA5NTk4NTgyMTg1Mzc5Mzg0NQ%3D%3D.2-ccb7-5&oh=00_AfCDzIGNvHtCcTIf1-H9y11n3Vpf1SsNWpTCVbL2iWmFqQ&oe=6460E234&_nc_sid=6136e7
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lax3-1.cdninstagram.com/v/t66.30100-16/10000000_136084739454377_6272574686122322584_n.mp4?efg=eyJ2ZW5jb2RlX3RhZyI6InZ0c192b2RfdXJsZ2VuLjEwODAuY2xpcHMuYmFzZWxpbmUiLCJxZV9ncm91cHMiOiJbXCJpZ193ZWJfZGVsaXZlcnlfdnRzX290ZlwiXSJ9&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=105&_nc_ohc=WssCkmW5UT4AX8NDmvv&edm=AJ9x6zYBAAAA&vs=611618730904331_491832877&_nc_vs=HBksFQAYJEdJQ1dtQUNwOVkyeXhIc0FBSmlxYllseHFReFhicFIxQUFBRhUAAsgBABUAGCRHSDFGQmhNLVc4S1AyZUlBQUlzeEJVU1BKQkkyYnBSMUFBQUYVAgLIAQAoABgAGwAVAAAmxLW3%2Fo%2FihEAVAigCQzMsF0BoKIMSbpeNGBZkYXNoX2Jhc2VsaW5lXzEwODBwX3YxEQB1%2FgcA&ccb=7-5&oh=00_AfBKFJQstZ1ekwrOI7GsvbRpyEC02zPCdwVrYYw7D-LN2g&oe=6460A938&_nc_sid=cff2a4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/345931432_625184756148113_9138877017364304521_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=105&_nc_ohc=stWmcUrBW20AX8XtRKs&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzA5OTQ0NTg4NTU0MDM2NDYyNA%3D%3D.2-ccb7-5&oh=00_AfAvIt3oxtboi00s03xaFTVq8cn2EZNfQWNFsjv7hEtJBA&oe=646362EE&_nc_sid=cff2a4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-lax3-1.cdninstagram.com/v/t51.2885-15/346099706_899919744403864_7120782227451009418_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-lax3-1.cdninstagram.com&_nc_cat=104&_nc_ohc=EwQpmrDMOHYAX94fhzP&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzA5OTMyMTg4NzEzMjk1MTI3OQ%3D%3D.2-ccb7-5&oh=00_AfDud-YAzBD4Cdja7JFSEx1TY2YumruNKdLIZuRo0X4TgA&oe=64649584&_nc_sid=cff2a4
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-iad3-1.cdninstagram.com/v/t51.2885-15/346459754_955189092187244_3132305561500628055_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-iad3-1.cdninstagram.com&_nc_cat=108&_nc_ohc=C98RI21lRWAAX8fkxKH&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzEwMTgwMDU0NzA5NjIwODIwOQ%3D%3D.2-ccb7-5&oh=00_AfCRSZqn9t83cur5cC9OXeY1JyXxYGRfQ0IP9pUH4d7ZgQ&oe=646660F6&_nc_sid=cff2a4
/Users/shixuesen/OneDrive/Pictures/instagram/naughty_rabbit_/ https://scontent-iad3-2.cdninstagram.com/v/t51.2885-15/347463511_1035962154032722_6961171125783130309_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-iad3-2.cdninstagram.com&_nc_cat=1&_nc_ohc=LSu6GP7rqQcAX9Ej9TO&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzEwNTc1NjA2ODEzNjQ5ODU5OA%3D%3D.2-ccb7-5&oh=00_AfDiIVH4gjZiGlaN66rQK4SUVgkIoZT8DbPiMVV_sk87Yg&oe=64707769&_nc_sid=a1ad6c
/Users/shixuesen/OneDrive/Pictures/instagram/beargenie/ https://scontent-iad3-2.cdninstagram.com/v/t51.2885-15/347725126_201443812840049_8752093749535121235_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-iad3-2.cdninstagram.com&_nc_cat=105&_nc_ohc=VDWn6gqwcC8AX9UtXT-&edm=ABmJApABAAAA&ccb=7-5&ig_cache_key=MzEwNjc3NTI1NTg1NTUyMDY2NQ%3D%3D.2-ccb7-5&oh=00_AfC3fPRjXm30Ie7RhuORR07U1obFzYUNICZiXNWZszM9nQ&oe=6471ED97&_nc_sid=a1ad6c
/Users/shixuesen/OneDrive/Pictures/instagram/Likes_new/ https://scontent-ord5-1.cdninstagram.com/v/t51.2885-15/350240208_624666975993937_7913994115751187492_n.jpg?stp=dst-jpg_e35&_nc_ht=scontent-ord5-1.cdninstagram.com&_nc_cat=101&_nc_ohc=zb6WaSWvg5MAX9TntT8&edm=AJ9x6zYBAAAA&ccb=7-5&ig_cache_key=MzExMzE2ODAwMDU5ODYyNjkxOQ%3D%3D.2-ccb7-5&oh=00_AfBMMq50XQ70XGfBqt7mUx0xdx5b2Trd-vCGyghefYWI6A&oe=647AF0B2&_nc_sid=5f7460

Loading…
Cancel
Save