随机视频预览:
随机视频调用:
自建APi调用代码,二选一
增加了token限制禁用工具下载
自建库
<video style="display: block;
width: 100%;
max-width: 430px;
margin: auto;
border-radius: 12px;" autoplay="" muted="" onended="this.src='https://www.ximi.me/video/'" src="https://www.ximi.me/video/">
</video>
三方库
<video style="display: block;
width: 100%;
max-width: 430px;
margin: auto;
border-radius: 12px;" autoplay="" muted="" onended="this.src='https://www.ximi.me/video/list.php'" src="https://www.ximi.me/video/list.php">
</video>
Api搭建代码:
1.list.php
<?php
// 检查请求是否来自浏览器
$browserUserAgents = ['Mozilla', 'Chrome', 'Safari', 'Opera', 'Edge', 'Firefox'];
$userAgent = $_SERVER['HTTP_USER_AGENT'];
$isBrowser = false;
foreach ($browserUserAgents as $browser) {
if (strpos($userAgent, $browser) !== false) {
$isBrowser = true;
break;
}
}
if (!$isBrowser) {
header('HTTP/1.1 403 Forbidden');
die('禁止非浏览器访问!');
}
// 视频文件名所在的文本文件路径
$dataFilePath = __DIR__ . '/data.txt';
// 检查data.txt文件是否存在且可读
if (!file_exists($dataFilePath) || !is_readable($dataFilePath)) {
http_response_code(500);
echo "data.txt 文件不存在或不可读。";
exit();
}
// 读取data.txt文件的所有行到一个数组中
$videoFileLines = file($dataFilePath, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
// 检查是否有视频文件名行
if (empty($videoFileLines)) {
http_response_code(404);
echo "data.txt 文件中没有视频文件名。";
exit();
}
// 随机选择一行(即一个视频文件名)
$randomLineIndex = array_rand($videoFileLines);
$videoFileName = $videoFileLines[$randomLineIndex];
// 假设视频文件存储在某个固定的URL路径下,这里只是拼接文件名
$videoUrlBase = "https://videos.xxapi.cn/";
$videoUrl = $videoUrlBase . $videoFileName;
// 重定向到视频文件的URL
header("Location: $videoUrl");
exit(); // 确保重定向后脚本停止执行
?>
2.data.txt
007d6303b2cc7a21.mp4
00e5dd4aba474201.mp4
027b5be166530aad.mp4
02d9070f4a1b7425.mp4
033d71e9b4f7ebc1.mp4
0392495cca8a3621.mp4
039c6490ca5bb33e.mp4
044c92f740fdc837.mp4
046dce0b1afd5682.mp4
04f3df95dcf90eaa.mp4
0519df895453f627.mp4
051dc1596ced6811.mp4
07f13e1fdd2eea39.mp4
0899e29f1be4e7b0.mp4
09452c58e6ba8d4a.mp4
09655ef318decbbb.mp4
0976562d28d8999c.mp4
09aadb36a6c09eab.mp4
0a1acc8bb1ba9d86.mp4
0a2fcf40e17c89c3.mp4
0a37e1eb9563ecf0.mp4
0ac7687308269582.mp4
0d13f467b37c72bd.mp4
0d20619c5f04e9ad.mp4
0e58fa1c17c2ca0e.mp4
0e96be1d89420d85.mp4
0efa2bb67337018a.mp4
10b12b5b638e547b.mp4
11219f92f3b89292.mp4
12890cb5877f663f.mp4
133045dc377e0989.mp4
14778564ecf77e5c.mp4
149961e7cd52d65e.mp4
171c2ae5fdf9dd62.mp4
178f84802d078975.mp4
18177a3fbd22ad92.mp4
182d4860764f12c3.mp4
18814d27efa38d8b.mp4
1997273f58e0144a.mp4
19e36b1c4ac8b063.mp4
19efd0b4d77e9473.mp4
1acd235a62f01dc2.mp4
1af8f779c037d11e.mp4
1ca823bda2ca661c.mp4
1d9db189db696275.mp4
1e6dea4dbb1315a5.mp4
1ecb0a74ac507b36.mp4
2191493c30a604ca.mp4
2243ee81b3f3fff7.mp4
22c3dbbe3ac07975.mp4
22d0f330754cf678.mp4
236c2eb47017879f.mp4
2501b3c6c8aa0f83.mp4
25f9e6e37399749e.mp4
2623ddd25527e43f.mp4
26c754320e2d67c1.mp4
279c50d2996b309c.mp4
27fae8d4f158843b.mp4
29f05f2f9cc2d262.mp4
2a6d04d1f2b90704.mp4
2b3308991b7a5050.mp4
2c8e39e5ec0a6d64.mp4
2d4a5a8b9a60ac5d.mp4
2e24a67db0d13973.mp4
2e9f03bc0a4b2273.mp4
318b5426aaf3c597.mp4
3295a48206704a4a.mp4
32a35be1b66c5084.mp4
32a82b11c10bd3e2.mp4
32b48d7bf2d5be5b.mp4
33247c08dd7b4b07.mp4
35b3c6cb577be1e3.mp4
35c489f858d640f8.mp4
35edb2d9b3a26c67.mp4
36c5738389a27118.mp4
375683435615fda0.mp4
376af3d921bc2051.mp4
38426ce29760aa15.mp4
3882e505062669d1.mp4
38a24224bafd8cd5.mp4
39ade31bf4cea2ab.mp4
3a56f75c0602cec0.mp4
3a92f8b203db8392.mp4
3b63925cfb8643ea.mp4
3c077e9e90d39ce1.mp4
3c7e57a5edaf0b00.mp4
3db5dd98d9162440.mp4
3e5926b2f102e19e.mp4
3f0c12dbe5f2afcd.mp4
3ff081ae6f11cd21.mp4
401f853ddf6e3c46.mp4
40c4f18f17ff7630.mp4
423fd578510c2122.mp4
42516a92fe686eb2.mp4
437e8bcde53ace99.mp4
4439c750b05179ca.mp4
444f52cffe6684ee.mp4
447e0ed2b12027bf.mp4
45e2650310d27f8c.mp4
462b994582c91016.mp4
4870e73c3fa03d58.mp4
48744c5e991a06d7.mp4
495f88aa3a12fca6.mp4
49887552db8185ac.mp4
49ed0226903e3358.mp4
4a0f7d9d5dade957.mp4
4a38ac1ec00caaa4.mp4
4b162c323fff946a.mp4
4bc83beba898830f.mp4
4c2577976febbed5.mp4
4c4cdefda6d73a51.mp4
4e11b4226462562b.mp4
4e4e9c9f75d37315.mp4
4e60abfba5c4fb84.mp4
4e78880cd0af66dd.mp4
4f26845f1d1f6f26.mp4
4fe600163cd1d924.mp4
502b00c7db73d470.mp4
506a97014c96cc41.mp4
50faa01f3e555360.mp4
5108414cfdcf4346.mp4
51824d6229b844fb.mp4
536e7d28af95f835.mp4
538979ce7c825134.mp4
53bb3a327c9b4768.mp4
53d339f106a41fbd.mp4
549fa38e53762eeb.mp4
555bff39917eca21.mp4
56184c98aa1522ef.mp4
574e985d60ce714a.mp4
580060d44a18eb99.mp4
581e2b4618181ee2.mp4
58892ccec228d1e1.mp4
588ad4858928fa6f.mp4
59061d25f3f78076.mp4
59b321ec394968ba.mp4
5b8015b82bae5dab.mp4
5ba49170c93ae107.mp4
5ba68a9769a1ac6a.mp4
5bb4f308876df84f.mp4
5c61de00c15f74c2.mp4
5cb8579455bc5ea9.mp4
5d09aa7a4217217e.mp4
5f69f5aa2fdcf09e.mp4
5f7fb8a377318f4a.mp4
60fe07570ca97136.mp4
611d61413e920a84.mp4
62b637f068cb180a.mp4
63585e1138a76243.mp4
63b7f043f86258a6.mp4
64a1ed00b47bd252.mp4
66feefc40936ed98.mp4
6715b15f0f44a08f.mp4
67c10ad6fcbe512c.mp4
68110a13985eaff5.mp4
689a7d9351d434ba.mp4
68adf1633c35f6da.mp4
68f169dd1e12c3c5.mp4
6914b9b2953c2953.mp4
6a0182cdc0c7ffad.mp4
6a20cfdbbf2bf95e.mp4
6a6691d0fc0d7c5d.mp4
6a81055d37b9c2e5.mp4
6acf5d40e3ee3995.mp4
6c5a86ec3a1bbc93.mp4
6cf86036ccf8423e.mp4
6e6b165a6e50554c.mp4
6ece18d2f3ffefb9.mp4
70c2096c7d51b53b.mp4
71a7194b4a074293.mp4
720c5e03ac678c91.mp4
7313d3abbb916cec.mp4
750652f313382008.mp4
782db43289bbeb2d.mp4
78ab1c18c6637b5d.mp4
790b3d382ee6eaaf.mp4
792b62f2f70cd6cc.mp4
7996ad543d3f8269.mp4
7ac1690b79aff624.mp4
7b6a9a9e8a4cc8c8.mp4
7b6be4abecf6255f.mp4
7c92a4c372e25ad8.mp4
7ca0b69dc4946be3.mp4
7cce2713106aefae.mp4
7d9966cdb81bb862.mp4
7e4d6870284b03f7.mp4
7e4f3180417d408c.mp4
7f0a9228abafae7a.mp4
7f417529869937ee.mp4
7fa431ac9fa98f61.mp4
811214300e60147d.mp4
813990ef3e51fc4e.mp4
82bf1dd14f6226e6.mp4
82dc378728e76371.mp4
82ff40111fa2ef41.mp4
83bafd9ae996f2d6.mp4
84173315716f5861.mp4
84c2f2a67db84361.mp4
854344cc402525f3.mp4
85a057b714add3d7.mp4
86e6d42d414a0cd1.mp4
8715504c710a2bc2.mp4
88e34aa0b2e33048.mp4
88efb70d91bc5d8d.mp4
895911a8053fbdb8.mp4
8962144266a83858.mp4
89837e343a3ec355.mp4
8b6b1b0d9fae99d8.mp4
8c6a25c052e7a29c.mp4
8cd9a223099445b3.mp4
8cfdf6d7bf37d718.mp4
8dad7176679ab6fa.mp4
8daf805c922a40c8.mp4
8ddfdf873adb8e56.mp4
8e085c65ce1cb3f6.mp4
8e3eea47cc832c1e.mp4
911b565e1bdb0d7a.mp4
929c136f42d84c2e.mp4
93c1625249b7b449.mp4
9460ebf166bd54d3.mp4
966af4d9bd5e2e07.mp4
971691a788f00777.mp4
97ea3ca00e8c48a4.mp4
99c0755c3348505d.mp4
9a8af5466390e06f.mp4
9ac398b93a4c3628.mp4
9b52e458b9399968.mp4
9c8703ae30cd15b7.mp4
9ccc3c19c93f51e0.mp4
9ee9fda693934369.mp4
9eeb14ea748906ec.mp4
9f41a80d0a6d7443.mp4
9fcc4add719052a9.mp4
a02e9dc54dc44ccc.mp4
a12e1e3d73acae10.mp4
a2454126f4f56039.mp4
a2a944080936675c.mp4
a31c507d40994d60.mp4
a44d843312acd140.mp4
a5129c0e3aee02ac.mp4
a59fd055be0926c9.mp4
a5f6555a9714d80f.mp4
a5ff30148bf43a10.mp4
a775d1bb67766401.mp4
a8cc50e767131729.mp4
a9490ecb1a2a9df2.mp4
a99fd86474b01156.mp4
a9ef2fd99fbfb35e.mp4
aac116ae95a45361.mp4
aaf619aee0652839.mp4
ac7fdafe2fa2f9d4.mp4
acd0f8354a360465.mp4
add184f127fc9c49.mp4
adf723105d8507ee.mp4
ae0dea902f429550.mp4
ae7919ef4eccaeb1.mp4
ae80aa407ced326c.mp4
ae95fd56911d6001.mp4
af283f12fd8d6879.mp4
b1055a6aae26c6a3.mp4
b160bd4d5310fdc0.mp4
b20f2d8a8db15b81.mp4
b26c28e605317e63.mp4
b27ec0011d49ed78.mp4
b2c3aa947fe48815.mp4
b301f5003f663cd3.mp4
b30eaeadec947800.mp4
b36fea18a1edeff9.mp4
b5ef7ce6d01e9c4b.mp4
b6440a6f8333ec16.mp4
b6f813be7b1f64fa.mp4
b799ce7d35a5655b.mp4
b82c625ebd57bfbe.mp4
b852ae2cac3fc448.mp4
b8c717db0e2eb95d.mp4
b8ce6ad7477009ca.mp4
b932763774ba39c5.mp4
b94468da1002a6ae.mp4
b9ccbac6c146dec8.mp4
ba8cfde338b38f5a.mp4
bad4c326509dc010.mp4
bc1d0af6c138b044.mp4
bc34988ed6a63fd4.mp4
bcb97c7a946ff462.mp4
bcd07667cf0d8017.mp4
bf901b42e5a2505f.mp4
bf9f4b0fcb52fd34.mp4
bfd8dee9bb6097c2.mp4
c0d8627c42ea1fa8.mp4
c12399ba9ed6fd8b.mp4
c20804eed7cf832c.mp4
c28ece718d6ba2c2.mp4
c29441c0d6468545.mp4
c2a71dd63822a58b.mp4
c2fa73f35ff01482.mp4
c3ded9fbcae084ed.mp4
c44757d7197d4524.mp4
c647e41310585b24.mp4
c68cf3ac4a4eb1c4.mp4
c6fb781ba86c1e0f.mp4
c7db1e9ed6896253.mp4
c958b2dd04a4acf5.mp4
c9f60ba297bd852c.mp4
ca01b434653598d1.mp4
cb768a962632d130.mp4
cc2e0e292e4f3098.mp4
cc94508e461815dd.mp4
ce5eb46aae163d98.mp4
ce6535d70893c8d1.mp4
ceb353dd6e1cd8f5.mp4
cebf78c8d3619011.mp4
ceef982a38f86e01.mp4
d1889abc08e1466e.mp4
d1e38b51db387653.mp4
d513094ec6fef009.mp4
d7ea978a38b92b24.mp4
d877df44826a21ba.mp4
da4fd737d979e5d3.mp4
da6e4e10aab65d38.mp4
dab377b9b06fb0ec.mp4
db06f1c660278d73.mp4
dcad0db8318b819c.mp4
dcdc4b9e1cd97dac.mp4
dce9dc7b5e0641f5.mp4
dcede048c44e5f74.mp4
dd47330cf2ffe6ed.mp4
ddad1b093d6e2eb2.mp4
dddc426bdfd5e064.mp4
de2df45fdf4b86ed.mp4
de49183554dd6835.mp4
df24b480cf8e2111.mp4
df40602dfd51c695.mp4
df6f67d8a21e4e63.mp4
dfc2b90f27ef4b14.mp4
dff3bd374923ec2d.mp4
e011f43f386d11e6.mp4
e1416f688c817b09.mp4
e438d2f5f9ee9c1a.mp4
e4e8dfabd9ded4d5.mp4
e5f2113e8f4c3fb2.mp4
e6f03f70b7e81ef1.mp4
e727f534b5acc2b2.mp4
e821c6bc577acf3f.mp4
e9051e770ee575e3.mp4
e92f9bf83b48b497.mp4
eaf270377335a0bf.mp4
eb125170d8879a78.mp4
ec4219ce25e48c9f.mp4
ec9baf1cf99116a0.mp4
ed2b20a625acd20d.mp4
eda6c15d32245e57.mp4
ef2a2c7462733ad3.mp4
ef9190d3bfee8ac0.mp4
f003ecd37eebd0fa.mp4
f0850bc76d08251d.mp4
f0f77d93baa318a6.mp4
f1b000f4db665cf2.mp4
f22c5b7783cf5178.mp4
f22c65de46b9c10d.mp4
f2758ad7045dff75.mp4
f276b4d23f89408d.mp4
f49d6168d1cfd272.mp4
f6a41e92463ae4b0.mp4
f7fd1a6922e8c0c0.mp4
f8b4668dbf1e635a.mp4
f8ceefb8ba81d8de.mp4
f952b6a17a5b13e4.mp4
fa8902012e9b616d.mp4
fc2a2ed3d5357626.mp4
fcaca402b571464c.mp4
fd53d889110c72e3.mp4
fe36fca3dec8f2e3.mp4
0002ca31c5120a12.mp4
01405b7c53e3e632.mp4
0205d1ccda42f5ba.mp4
034dc2593a7a1c6d.mp4
0357af3ebcd65a92.mp4
0408d81cefb9c2cf.mp4
040cdefe3ff3b12e.mp4
046aa6ab018202b3.mp4
046f91d93843db7d.mp4
05323ac96c631af6.mp4
055cc3263bd36be0.mp4
05b9d74da00a51e5.mp4
06068a138bb20def.mp4
073309b93a31baf6.mp4
0760273c2065bc51.mp4
098ee1862d186e4f.mp4
0b366f42163beaf5.mp4
0c6165bd434a4e4b.mp4
0e125e0d711ea759.mp4
0e5be4cefeafd1a8.mp4
0e87bd27e0176dfd.mp4
0ed25b52661d0eeb.mp4
0eea279ab3a8fe06.mp4
0f3d8ffd8fd093cc.mp4
10bd118d909230ce.mp4
120266008f747c4b.mp4
120cb1a3f3a864ed.mp4
12212f7acf87cc20.mp4
12b72d593c6ed288.mp4
13085a32e4560172.mp4
1311e350c6eae580.mp4
13769afe27980a84.mp4
14a13aabbac8f665.mp4
15307cb07c195da6.mp4
176ed5afb43ab10c.mp4
17f7a5180436c486.mp4
18624db52ef5051b.mp4
18ac9865aa8b9cf6.mp4
18f40e5631e165f0.mp4
1998244633ae00ed.mp4
1aa92e759c1e2ba9.mp4
1c11fa92605e8897.mp4
1c4887153274b782.mp4
1c576fa01a30ffd5.mp4
1c5f4531510defdb.mp4
1d000ea414e57132.mp4
1d0616631c4bbcca.mp4
1dae8329818b7f5d.mp4
1e819573cd696bfd.mp4
1e8ed0493ed3db3d.mp4
1efc79a8a2fe801b.mp4
1f0f4f7fc9ca4199.mp4
1f46d5efcc83fb2a.mp4
219ebcf4938e247a.mp4
21afdb4d88cd931c.mp4
21d0b6efac016fa0.mp4
2245f2d6991dbe75.mp4
229f1c2e65004d0e.mp4
22ba4eb6008d1ef8.mp4
24606b2c10e2f059.mp4
2479f3b3856cd94f.mp4
248a6f1e2d784d07.mp4
24a0f81906939465.mp4
27ed3844f649786e.mp4
287c54e394859dd4.mp4
28bb092266b8f34f.mp4
29fa4b884f268f29.mp4
2a02574b3c8f921d.mp4
2a826c31df3527d6.mp4
2b07a70d345f3148.mp4
2b1ee06cec69adbf.mp4
2bf2a172007939de.mp4
2c6dc82ca780a1b8.mp4
2c779e50c66ec7e3.mp4
2d08a6d3cb3b8c11.mp4
2d54f8522302db74.mp4
2de88bf9b4b76c4c.mp4
2e21ef76eb2693f9.mp4
2e3acbe06e56ae0a.mp4
2e4144c3affbfa00.mp4
2e6bd58882647acb.mp4
301204110045a05a.mp4
30f5d00d9a830b54.mp4
338648c4c065f0f7.mp4
36966691c7e445fa.mp4
3760faf905ba8536.mp4
37cd87b3883cbb4a.mp4
3925437968c92092.mp4
395dc64d52b7a68a.mp4
39cde01c555674c4.mp4
3a8fb35e49e4cdd0.mp4
3b24bae7dbda5c8a.mp4
3b69bf59cf3a8ccb.mp4
3bec0c95024f3508.mp4
3c0b9992128e1e50.mp4
3e0703321acba253.mp4
3f36a8315cb1575a.mp4
3f4f242ac60fd344.mp4
3f63bfbe95b0d155.mp4
40af7bcab8c8a4e4.mp4
4181f1d69caa0327.mp4
41b7bf3501a03a22.mp4
425c7d3ffabf39af.mp4
42f9f7e97a10d51a.mp4
430a35b55ee80015.mp4
431babcbf60ab0a1.mp4
4348a4f22772c418.mp4
43f0a91ea8232cda.mp4
46f606c98b81c153.mp4
47452eed72cca470.mp4
495fd917d91ab97b.mp4
4a49cac4fa78aeca.mp4
4aaf46964d8dd067.mp4
4b780359bdabc1e2.mp4
4bc0330888616b81.mp4
4c55d335885a8dcc.mp4
4d6fc76f65a2cc03.mp4
4f812f260a6fd147.mp4
4fa6ad905aab875d.mp4
50480aad57d53fd1.mp4
509771b7df4b4bca.mp4
50999a36cadc7455.mp4
50f7457a91ac5a9e.mp4
523e50bb2b084a83.mp4
533edc614c1298c9.mp4
54267b179b4993cf.mp4
559d8ce30ea43fc4.mp4
55bbb2178e2e8acf.mp4
579f06daa911d3f2.mp4
589ade3a8d6720a6.mp4
58a305bc016d60c6.mp4
5981892c814da282.mp4
5987cf55e18b4d72.mp4
5b638ea71f2abd91.mp4
5c263b1841c91d51.mp4
5c39b81946786813.mp4
5c43a46f6be0e22f.mp4
5cc044dba17062be.mp4
5d1ddc4cfcea8b8b.mp4
5dc395429f6fba13.mp4
5e063f53e26ce9d1.mp4
5e6ee7bffd332c28.mp4
5ea39cd53cbda6b9.mp4
5ed7c722fefea876.mp4
5ff438e774a3f3e8.mp4
60760f257c6b1513.mp4
60bd5950ba6da546.mp4
61834f908c2d8b96.mp4
61d7e4aad0af8220.mp4
62d8b73a1109888a.mp4
633fc1c97e27c511.mp4
639590ec8f12841e.mp4
642b4f79eeb09042.mp4
64695dda5a19f26a.mp4
655f62e972fced54.mp4
66d7deb9b61b1fc3.mp4
672e13d96eb79c27.mp4
6736c6af74c4aa05.mp4
678d0a140722ad09.mp4
67b162d8a0e6f1d7.mp4
67cd1208ed51770b.mp4
67fa3b4b06e855f3.mp4
683d73213676eaaa.mp4
688ab18089e78b23.mp4
68952e90f5b983b9.mp4
68a95a4c8b926f0f.mp4
68bc1b9b1e3de07e.mp4
68cb6f8324a8e9f5.mp4
6921ec35888c3fb5.mp4
697975eb2d47de3d.mp4
6a1962b8f035c7eb.mp4
6ac0baa23708f0f2.mp4
6b736d8e806085ad.mp4
6bd7dc17ddb0ba27.mp4
6ca0295339a79664.mp4
6cc8568d36a54f05.mp4
6fe4096f8a97192c.mp4
7037447581d8f3ac.mp4
713e8794f0cf7326.mp4
71d8b8e1e7899064.mp4
72bfaaaf6054b7b3.mp4
73c756baf9ce7e6c.mp4
74350e09544ca522.mp4
74f4da010c190cb1.mp4
753682ffba4391bf.mp4
7591746aa2020068.mp4
75d3aeab5c5b386a.mp4
769f2b864a5763e0.mp4
77194642cce6f481.mp4
774cbe17bdc22d0e.mp4
77b04b9f4b3466bc.mp4
7878fba79a79b970.mp4
788057679c783b13.mp4
78e6ba563af8a017.mp4
79c977eb207135d4.mp4
79ec33ec2aaa2eff.mp4
7a0fcc671244fb40.mp4
7a1a84a1bc8fda9c.mp4
7acf1de0b82428ad.mp4
7b919429a335026a.mp4
7c09a8daab28bf81.mp4
7c8d65753d7fb60f.mp4
7ca515fd4effdd1c.mp4
7cf3798bb2557b2a.mp4
7f0d560b95d52ebd.mp4
7f441c38d3b368e3.mp4
7f557b91c6eadb35.mp4
807e4a2206315337.mp4
80f0626ac5fdb555.mp4
816c6eea409fe7f4.mp4
81f740ff072e76ba.mp4
827b15306a7fb8e8.mp4
82e3c13938ace52f.mp4
83061d04fc124089.mp4
8332c5c83e29ed7d.mp4
838f73278942c668.mp4
83d3c453044b0bf7.mp4
840f662564a2765c.mp4
84244c7a7cf1c882.mp4
842dd116d056bbef.mp4
849bb5748cfa6519.mp4
84efd92df0bcc881.mp4
84f0d330d506ed82.mp4
852bea484ee2b7ad.mp4
856107fc1b0b2edd.mp4
85646183e8f664db.mp4
887cd030a0ab2304.mp4
8978f0f1a71ae7c2.mp4
89850fd00bfd13fc.mp4
8a1e82e3930270a2.mp4
8a7e1d8bbf00e645.mp4
8b2a8517162465e3.mp4
8b6dd955cea968fd.mp4
8c99924aca83a0d9.mp4
8c9d419ce739d4e9.mp4
8d05a109ff1688df.mp4
8d42bf8f994c57f9.mp4
8e11ef28ed10b86d.mp4
8e90c087e22dde5c.mp4
8e988822ab59501b.mp4
8ec6dce5e3bd39bf.mp4
8ff47465b08f34da.mp4
8ff8fd5133163505.mp4
904aee819a6bdf30.mp4
917516897a9b8d87.mp4
923a33ad0c142758.mp4
923b9f491d624a2c.mp4
92ce690910aad005.mp4
9308a43380f5b251.mp4
9322965ed6d0e8f4.mp4
9338651bfa03db57.mp4
93c772d3714059e3.mp4
93d751499f8f6ffa.mp4
94ee923c39925e0e.mp4
95fd3bbdb1cc35e8.mp4
9645a1b3a89c6024.mp4
96d586177aee0daa.mp4
9721681f0e27ee06.mp4
978cc5e8f87fb380.mp4
97b11ac9c20a11f3.mp4
98868ab0b463b239.mp4
98994f4aef7ed1e7.mp4
98dd954115e87e17.mp4
98f22eea5164bdf7.mp4
9930a2288b5fb11c.mp4
9a773f6b0f8ea81a.mp4
9abe0b83623b8a21.mp4
9c5fb28620446141.mp4
9cb0e7ba0aa78990.mp4
9df2e9e36ac7e8eb.mp4
9dfa675803b65476.mp4
9e4bb228b200f9c9.mp4
9fb1587eba2d3354.mp4
9fcd788c9c73bbfb.mp4
9ff1f80a08077341.mp4
a05bbc166a1dd329.mp4
a097b4f07f2cb1a6.mp4
a16b6bf10b39b3f6.mp4
a1a93b12b39ca489.mp4
a20cc65f5da3e67e.mp4
a2be82afdf37d9d8.mp4
a2d8bd819e202fd5.mp4
a2efd68bf4f16b42.mp4
a309add2a0095446.mp4
a7168d6923896a3b.mp4
a818065e6257acdf.mp4
a8a3b5225e1ea9ed.mp4
a92d6205045d41cc.mp4
a9d986fa3c739036.mp4
aa7d4a082f778475.mp4
aac116ae95a45361.mp4
ac03c1feebf2a52a.mp4
ae484cf23654b342.mp4
ae54677047597a31.mp4
b033498768d61ae1.mp4
b103af9c95c76b9e.mp4
b16335bbe7559cad.mp4
b16f2486eff89e16.mp4
b18ec5ed5c407d51.mp4
b1bb9a7571b5f10b.mp4
b262fced8f39b9c6.mp4
b2e9d217359b8a26.mp4
b300eecb14bcd1e3.mp4
b331de1f8c1a3689.mp4
b388140eefd615c2.mp4
b3f9eb8b29e956ac.mp4
b4344cb9af143ddc.mp4
b4f2150b583a5599.mp4
b50ebc1a3463f83f.mp4
b54825d01a0f83b7.mp4
b74df92b0f265ed7.mp4
b76a76d9dc75d304.mp4
b7d6342bec46ab4c.mp4
b7fb4aca9743fc45.mp4
b91ed3568f77a66d.mp4
b92f74de60086830.mp4
b943fb5ca6a31bff.mp4
bb15673abe8100c7.mp4
bb41a87c1196b6a5.mp4
bf22a5e87c569b3e.mp4
bfb13bdca6633e50.mp4
bfbd3fdec1138975.mp4
bfbfa24f205e1293.mp4
c03704967e5c9a68.mp4
c33e4cdfd62c5dae.mp4
c37f145239067968.mp4
c3a1d9fa4f2ad2ed.mp4
c4a8c441dae143c1.mp4
c514ae3335d3be23.mp4
c570e023c619ea02.mp4
c613e7d984d01dad.mp4
c68cf3ac4a4eb1c4.mp4
c772edf2d6e628e1.mp4
c853c518a8184738.mp4
c98af6b1825d27fe.mp4
c9d1a1e5eedc0eb1.mp4
ca01b434653598d1.mp4
ca2916167ceccd1b.mp4
cad856da41aa53f2.mp4
cafc3a69dd0a9fc7.mp4
cd09466b97ed6c14.mp4
cd2111a32f4fbd5f.mp4
cd995f479467859b.mp4
cda267ffc733691e.mp4
ce9d4dda31511627.mp4
cf4fa0a0557dc63f.mp4
cfe2b6cea8196c65.mp4
d0628965761846fb.mp4
d094afa64529325c.mp4
d0bb4bee1e8e928e.mp4
d1e38b51db387653.mp4
d1fb0f4a0d3c6721.mp4
d20ca9df5f466f51.mp4
d261a677c6559d33.mp4
d3880e67f8b6d57b.mp4
d3f65d7a408af3b4.mp4
d563e3b0cda46479.mp4
d58e6d16b6947908.mp4
d594d77cbd68ab04.mp4
d5a812a89521fe5f.mp4
d7ee24035c40fcb7.mp4
d848086f39afcfee.mp4
dae80b32e0a01887.mp4
daf2bf44606767ea.mp4
db2da3056c7c71e2.mp4
dc0c7b23e2dbb596.mp4
dc235e635db59865.mp4
dc75988b91f5eb5e.mp4
dcb75dc1142ad6de.mp4
e1006f7dd38e282a.mp4
e186f4ac25f4956f.mp4
e1edb1b8de110566.mp4
e35f725c01d62668.mp4
e419379491a65e8b.mp4
e442138845be20d8.mp4
e45649de13dc531c.mp4
e60319820174103c.mp4
e6270229f9b9a64e.mp4
e72de3fd15f06826.mp4
e75a890493cb5a43.mp4
e781d34dd176c375.mp4
e7884d1851b8207c.mp4
e9f1cb753a43d5cb.mp4
eb8484ddb7560d1d.mp4
ebbc6bfc3b116dba.mp4
ec3d3d653af44068.mp4
ecead6ec20e6cbd7.mp4
edaf41226842ce6d.mp4
edd51afd9a7d9dc6.mp4
ee64a0519c342a16.mp4
eee37b6967a75727.mp4
efb6707a74cf9f07.mp4
f001fd086a5a33fb.mp4
f1383d1c12414429.mp4
f194fce828238138.mp4
f237a2e4aebfeee1.mp4
f27beb546a83bcc8.mp4
f28ba022c69d0cb6.mp4
f319f8d292182489.mp4
f34a4ac46b5d2179.mp4
f39e1d094107f48b.mp4
f3e4a2b859367eea.mp4
f4d395d0a732491f.mp4
f5a386c50a822c9a.mp4
f8964e4d1267bc3a.mp4
f97a266436c89ec5.mp4
fa4884b77b2206ec.mp4
fb2b79c073042fc6.mp4
fbfcc234579aa07b.mp4
fc45f2c2a2b0b660.mp4
fc8d862db950a58f.mp4
fca035d5ab7f90fc.mp4
fd7d1edc1e81ba79.mp4
fe395aff85889a6c.mp4
fe6413bfc061b029.mp4
1、index.php
<?php
// a.php-index
// 视频文件所在目录
$videoDir = __DIR__ . '/video_date/';
// 获取目录下所有 MP4 文件
$mp4Files = glob($videoDir . '*.mp4');
// 如果没有 MP4 文件,退出
if (count($mp4Files) == 0) {
die('没有找到视频文件');
}
// 随机选择一个视频文件
$randomVideo = $mp4Files[array_rand($mp4Files)];
// 获取文件名
$fileName = basename($randomVideo);
// 生成 Token 的函数
function generateToken($fileName) {
global $secretKey;
$timestamp = time(); // 当前时间戳
$randomString = bin2hex(random_bytes(16)); // 生成随机字符串
$ipAddress = $_SERVER['REMOTE_ADDR']; // 绑定 IP 地址
return hash('sha256', $fileName . $secretKey . $timestamp . $randomString . $ipAddress) . ':' . $timestamp . ':' . $randomString;
}
// 你的秘密密钥(需要自己设置一个安全的密钥)
$secretKey = 'ximi_secret_key'; // 替换为你的实际密钥
// 生成 Token
$token = generateToken($fileName);
// 生成 URL
$url = "paly.php?video=" . urlencode($fileName) . "&token=" . urlencode($token);
// 使用 header() 实现跳转到播放页面
header("Location: $url");
exit();
?>
2、paly.php
<?php
// index.php-paly
session_start();
// 获取请求的文件名和 Token
$imgName = htmlspecialchars(isset($_GET['video']) ? $_GET['video'] : '') ;
$token = htmlspecialchars(isset($_GET['token']) ? $_GET['token'] : '') ;
// 打印调试信息,检查传递的参数
// 你可以将以下内容暂时开启调试
// echo 'file: ' . $imgName . '<br>';
// echo 'token: ' . $token . '<br>';
if (empty($imgName) || empty($token)) {
die('Invalid file or token.');
}
// 你的秘密密钥
$secretKey = 'ximi_secret_key';
// 生成动态 Token 的函数(绑定 IP 地址)
function generateToken($fileName) {
global $secretKey;
$timestamp = time(); // 当前时间戳
$randomString = bin2hex(random_bytes(16)); // 生成随机字符串
$ipAddress = $_SERVER['REMOTE_ADDR']; // 获取用户的 IP 地址
return hash('sha256', $fileName . $secretKey . $timestamp . $randomString . $ipAddress) . ':' . $timestamp . ':' . $randomString;
}
// 验证动态 Token 的函数
function validateToken($token, $fileName) {
global $secretKey;
list($hashedToken, $timestamp, $randomString) = explode(':', $token);
// Token 的有效期(例如 30 分钟)
$expiryTime = 10; //30 * 60; 30分钟
$currentTime = time();
// 检查时间戳是否过期
if ($currentTime - $timestamp > $expiryTime) {
return false;
}
// 重新生成 Token 进行验证
$ipAddress = $_SERVER['REMOTE_ADDR']; // 获取用户的 IP 地址
$expectedToken = hash('sha256', $fileName . $secretKey . $timestamp . $randomString . $ipAddress);
// 如果验证成功
if ($hashedToken === $expectedToken) {
return true;
}
return false;
}
// 验证 Token 是否有效
if (validateToken($token, $imgName)) {
// 视频文件路径
$videoDir = __DIR__ . '/video_date/';
$videoPath = $videoDir . $imgName;
// 检查文件是否存在
if (file_exists($videoPath)) {
// 获取 MIME 类型
$mimeType = mime_content_type($videoPath);
// 设置正确的 MIME 类型
header('Content-Type: ' . $mimeType);
header('Content-Disposition: inline; filename="' . basename($videoPath) . '"');
header('Content-Length: ' . filesize($videoPath));
// 输出视频内容
readfile($videoPath);
exit;
} else {
// 如果文件不存在,显示404错误
header('HTTP/1.0 404 Not Found');
echo 'File not found.';
exit;
}
} else {
// 如果 Token 无效,返回 403 错误
header('HTTP/1.0 403 Forbidden');
echo 'Access forbidden or invalid token';
exit;
}
?>
下载地址