|
|
@ -10,6 +10,7 @@ use App\BilibiliVideos; |
|
|
use Exception; |
|
|
use Exception; |
|
|
use GuzzleHttp\Client; |
|
|
use GuzzleHttp\Client; |
|
|
use Illuminate\Support\Arr; |
|
|
use Illuminate\Support\Arr; |
|
|
|
|
|
use Illuminate\Support\Facades\App; |
|
|
use Illuminate\Support\Facades\DB; |
|
|
use Illuminate\Support\Facades\DB; |
|
|
use Illuminate\Support\Facades\Log; |
|
|
use Illuminate\Support\Facades\Log; |
|
|
|
|
|
|
|
|
@ -26,6 +27,8 @@ class BilibiliServiceV2 |
|
|
|
|
|
|
|
|
private $baseDir = "/Volumes/intel660p/video/mv/"; |
|
|
private $baseDir = "/Volumes/intel660p/video/mv/"; |
|
|
|
|
|
|
|
|
|
|
|
private $remoteDir = "/data"; |
|
|
|
|
|
|
|
|
public function queryPlayList() |
|
|
public function queryPlayList() |
|
|
{ |
|
|
{ |
|
|
$pageNo = 1; |
|
|
$pageNo = 1; |
|
|
@ -238,6 +241,7 @@ class BilibiliServiceV2 |
|
|
|
|
|
|
|
|
public function compareAndDownloadUpVideos($isAll = false) |
|
|
public function compareAndDownloadUpVideos($isAll = false) |
|
|
{ |
|
|
{ |
|
|
|
|
|
$env = App::environment(); |
|
|
$list = BilibiliUpVideos::all(); |
|
|
$list = BilibiliUpVideos::all(); |
|
|
// $list = array_slice($list->all(), 15, 5);
|
|
|
// $list = array_slice($list->all(), 15, 5);
|
|
|
foreach ($list as $item) { |
|
|
foreach ($list as $item) { |
|
|
@ -262,20 +266,25 @@ class BilibiliServiceV2 |
|
|
$videoPartsMap[$vItem["aid"]] = $vItem["total_parts"]; |
|
|
$videoPartsMap[$vItem["aid"]] = $vItem["total_parts"]; |
|
|
echo "当前 up名称是: " . $item["up_name"] . " 当前下载的视频 title: " . $vItem["title"] . " 当前下载的视频 aid 是:" . $vItem["aid"] . "\n" ; |
|
|
echo "当前 up名称是: " . $item["up_name"] . " 当前下载的视频 title: " . $vItem["title"] . " 当前下载的视频 aid 是:" . $vItem["aid"] . "\n" ; |
|
|
Log::info("当前 up名称是: " . $item["up_name"] . " 当前下载的视频 title: " . $vItem["title"] . " 当前下载的视频 aid 是:" . $vItem["aid"]); |
|
|
Log::info("当前 up名称是: " . $item["up_name"] . " 当前下载的视频 title: " . $vItem["title"] . " 当前下载的视频 aid 是:" . $vItem["aid"]); |
|
|
$result = false; |
|
|
|
|
|
if ($item['mid'] == 27174777) { |
|
|
|
|
|
$result = $this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/", "女团"); |
|
|
|
|
|
} else if ($item["mid"] == 391316322) { |
|
|
|
|
|
$result = $this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/", "娜娜"); |
|
|
|
|
|
} else if ($item["mid"] == 396501206) { |
|
|
|
|
|
$result = $this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/", "佳佳"); |
|
|
|
|
|
|
|
|
if ($env == "local") { |
|
|
|
|
|
$result = false; |
|
|
|
|
|
if ($item['mid'] == 27174777) { |
|
|
|
|
|
$result = $this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/", "女团"); |
|
|
|
|
|
} else if ($item["mid"] == 391316322) { |
|
|
|
|
|
$result = $this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/", "娜娜"); |
|
|
|
|
|
} else if ($item["mid"] == 396501206) { |
|
|
|
|
|
$result = $this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/", "佳佳"); |
|
|
|
|
|
} else { |
|
|
|
|
|
$result = $this->partDownloadBSitePlaylist($videoPartsMap, $this->baseDir . "bilibili/", $item['up_name']); |
|
|
|
|
|
} |
|
|
|
|
|
if ($result) { |
|
|
|
|
|
$vItem["is_downloaded"] = 1; |
|
|
|
|
|
$vItem->save(); |
|
|
|
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
$result = $this->partDownloadBSitePlaylist($videoPartsMap, $this->baseDir . "bilibili/", $item['up_name']); |
|
|
|
|
|
} |
|
|
|
|
|
if ($result) { |
|
|
|
|
|
$vItem["is_downloaded"] = 1; |
|
|
|
|
|
$vItem->save(); |
|
|
|
|
|
|
|
|
$this->partDownloadBSitePlaylist($videoPartsMap, $this->remoteDir . "bilibili/", $item["up_name"]); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -284,6 +293,7 @@ class BilibiliServiceV2 |
|
|
|
|
|
|
|
|
public function compareAndDownloadCollectionVideos($isAll = false) |
|
|
public function compareAndDownloadCollectionVideos($isAll = false) |
|
|
{ |
|
|
{ |
|
|
|
|
|
$env = App::environment(); |
|
|
$list = BilibiliCollections::all(); |
|
|
$list = BilibiliCollections::all(); |
|
|
foreach ($list as $item) { |
|
|
foreach ($list as $item) { |
|
|
dump("收藏夹名称是: " . $item["title"] . "\n"); |
|
|
dump("收藏夹名称是: " . $item["title"] . "\n"); |
|
|
@ -309,22 +319,30 @@ class BilibiliServiceV2 |
|
|
$videoPartsMap[$vItem["aid"]] = $vItem["total_parts"]; |
|
|
$videoPartsMap[$vItem["aid"]] = $vItem["total_parts"]; |
|
|
echo "收藏夹名称是: " . $item["title"] . " 当前下载的视频 title: " . $vItem["title"] . " 当前下载的视频 aid 是:" . $vItem["aid"] . "\n" ; |
|
|
echo "收藏夹名称是: " . $item["title"] . " 当前下载的视频 title: " . $vItem["title"] . " 当前下载的视频 aid 是:" . $vItem["aid"] . "\n" ; |
|
|
Log::info("收藏夹名称是: " . $item["title"] . " 当前下载的视频 title: " . $vItem["title"] . " 当前下载的视频 aid 是:" . $vItem["aid"]); |
|
|
Log::info("收藏夹名称是: " . $item["title"] . " 当前下载的视频 title: " . $vItem["title"] . " 当前下载的视频 aid 是:" . $vItem["aid"]); |
|
|
if ($item['title'] == "默认收藏夹") { |
|
|
|
|
|
dump("xxxxxxxxxxxx----------------"); |
|
|
|
|
|
$this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/", "bilibili"); |
|
|
|
|
|
} else if ($item['title'] == '少女时代') { |
|
|
|
|
|
$this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/少女时代", ""); |
|
|
|
|
|
} else if ($item['title'] == 'aoa') { |
|
|
|
|
|
$this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/aoa", ""); |
|
|
|
|
|
} else if ($item['title'] == 'blackpink') { |
|
|
|
|
|
$this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/blackpink", ""); |
|
|
|
|
|
} else if ($item['title'] == 'wjsn') { |
|
|
|
|
|
$this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/wjsn", ""); |
|
|
|
|
|
|
|
|
if ($env == "local") { |
|
|
|
|
|
$result = false; |
|
|
|
|
|
if ($item['title'] == "默认收藏夹") { |
|
|
|
|
|
dump("xxxxxxxxxxxx----------------"); |
|
|
|
|
|
$result = $this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/", "bilibili"); |
|
|
|
|
|
} else if ($item['title'] == '少女时代') { |
|
|
|
|
|
$result = $this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/少女时代", ""); |
|
|
|
|
|
} else if ($item['title'] == 'aoa') { |
|
|
|
|
|
$result = $this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/aoa", ""); |
|
|
|
|
|
} else if ($item['title'] == 'blackpink') { |
|
|
|
|
|
$result = $this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/blackpink", ""); |
|
|
|
|
|
} else if ($item['title'] == 'wjsn') { |
|
|
|
|
|
$result = $this->partDownloadBSitePlaylist($videoPartsMap, "/Volumes/WD/tmp/bilibili/wjsn", ""); |
|
|
|
|
|
} else { |
|
|
|
|
|
$result = $this->partDownloadBSitePlaylist($videoPartsMap, $this->baseDir . "bilibili/", $item['title']); |
|
|
|
|
|
} |
|
|
|
|
|
if ($result) { |
|
|
|
|
|
$vItem["is_downloaded"] = 1; |
|
|
|
|
|
$vItem->save(); |
|
|
|
|
|
} |
|
|
} else { |
|
|
} else { |
|
|
$this->partDownloadBSitePlaylist($videoPartsMap, $this->baseDir . "bilibili/", $item['title']); |
|
|
|
|
|
|
|
|
$this->partDownloadBSitePlaylist($videoPartsMap, $this->remoteDir . "bilibili", $item["title"]); |
|
|
} |
|
|
} |
|
|
$vItem["is_downloaded"] = 1; |
|
|
|
|
|
$vItem->save(); |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
@ -867,6 +885,7 @@ class BilibiliServiceV2 |
|
|
*/ |
|
|
*/ |
|
|
public function partDownloadBSitePlaylist($aidMap, $dir = "/Volumes/intel660p/video/mv/mp4", $subDir) |
|
|
public function partDownloadBSitePlaylist($aidMap, $dir = "/Volumes/intel660p/video/mv/mp4", $subDir) |
|
|
{ |
|
|
{ |
|
|
|
|
|
$env = App::environment(); |
|
|
$dirExists = is_dir($dir); |
|
|
$dirExists = is_dir($dir); |
|
|
dump($dirExists); |
|
|
dump($dirExists); |
|
|
if ($dirExists) { |
|
|
if ($dirExists) { |
|
|
@ -880,11 +899,19 @@ class BilibiliServiceV2 |
|
|
foreach ($aidMap as $aid => $parts) { |
|
|
foreach ($aidMap as $aid => $parts) { |
|
|
dump($aid); |
|
|
dump($aid); |
|
|
Log::info("current download command is : cd '{$innerDir}' && annie -r https://www.bilibili.com/video/av80815149 -p " . $aid); |
|
|
Log::info("current download command is : cd '{$innerDir}' && annie -r https://www.bilibili.com/video/av80815149 -p " . $aid); |
|
|
$downloadResult = shell_exec('export http_proxy=http://127.0.0.1:1087; export https_proxy=http://127.0.0.1:1087; cd "' .$innerDir .'" && url="https://www.bilibili.com/video/av' . $aid . '?p="
|
|
|
|
|
|
|
|
|
if ($env == "local") { |
|
|
|
|
|
$downloadResult = shell_exec('export http_proxy=http://127.0.0.1:1087; export https_proxy=http://127.0.0.1:1087; cd "' . $innerDir . '" && url="https://www.bilibili.com/video/av' . $aid . '?p="
|
|
|
for i in $(seq 1 ' . $parts . ') |
|
|
for i in $(seq 1 ' . $parts . ') |
|
|
do |
|
|
do |
|
|
annie -f 64 $url$i |
|
|
annie -f 64 $url$i |
|
|
done && echo "ok"' ); |
|
|
|
|
|
|
|
|
done && echo "ok"'); |
|
|
|
|
|
} else { |
|
|
|
|
|
$downloadResult = shell_exec('cd "' . $innerDir . '" && url="https://www.bilibili.com/video/av' . $aid . '?p="
|
|
|
|
|
|
for i in $(seq 1 ' . $parts . ') |
|
|
|
|
|
do |
|
|
|
|
|
annie -c "SESSDATA=216ce1c5%2C1636429756%2Cb86c3%2A51;" $url$i |
|
|
|
|
|
done && echo "ok"'); |
|
|
|
|
|
} |
|
|
Log::info($downloadResult); |
|
|
Log::info($downloadResult); |
|
|
Log::info("$aid current download result: " . $downloadResult); |
|
|
Log::info("$aid current download result: " . $downloadResult); |
|
|
try { |
|
|
try { |
|
|
|