半次元
Warriors interested in this project should recognize that Banciyuan appends your IP address in the HTML, which may appear in the Wayback Machine. |
半次元 (Banciyuan) | |
URL | https://bcy.net/ |
Status | Web: Offline Web API: Offline Image CDN: Endangered |
Archiving status | Web: Partially saved Web API: Partially saved Image CDN: Partially saved |
Archiving type | DPoS |
Project source | banciyuan-grab |
Project tracker | banciyuan banciyuan-images |
IRC channel | #wuciyuan (on hackint) |
Data[how to use] | archiveteam_banciyuan |
半次元 or Banciyuan (literally "Half Dimension") was a Chinese ACG community founded in 2014 and acquired by ByteDance, the company that owns TikTok, in 2018.
It was announced that the website would become read-only on 2023-06-30, and would close on 2023-07-12[1], possibly because it was deemed unprofitable. The service became read-only on 2023-07-11 01:30 UTC, and the main site started returning 404 circa 2023-07-12 11:00 UTC.
Website structure
The website is made of ReactJS. The website returns different layouts and performs different 302 redirects for PC and mobile User-Agents.
Entities
All entities below are identified by positive integers (incremental initially, and for later items a modified Snowflake ID, where the first 32 bits are a UNIX timestamp in seconds).
User (用户)
Account registration requires a major SNS account or mobile phone number in mainland China.
Users can follow (关注) other users, be followed by other users, follow tags, create collections, and like (喜欢) items.
./src/pages/pc/profile/index/index.js
https://bcy.net/u/{uid} https://bcy.net/u/{uid}?filter=note https://bcy.net/u/{uid}?filter=article https://bcy.net/u/{uid}?filter=ganswer https://bcy.net/u/{uid}?filter=video https://bcy.net/u/{uid}/like https://bcy.net/u/{uid}/collection
./src/pages/pc/home/post/index.js
https://bcy.net/u/{uid}/post https://bcy.net/u/{uid}/post/ https://bcy.net/u/{uid}/post/?p={page} https://bcy.net/u/{uid}/post/note https://bcy.net/u/{uid}/post/note?p={page} https://bcy.net/u/{uid}/post/article https://bcy.net/u/{uid}/post/article?p={page} https://bcy.net/u/{uid}/post/ganswer https://bcy.net/u/{uid}/post/ganswer?p={page} https://bcy.net/u/{uid}/post/video https://bcy.net/u/{uid}/post/video?p={page}
./src/pages/pc/profile/follow/index.js
https://bcy.net/u/{uid}/following https://bcy.net/u/{uid}/follower https://bcy.net/u/{uid}/circle
./src/pages/mobile/home/user/index.js
https://bcy.net/u/{uid}
Item (发布) / Post
An item is created by a specific user.
There are four types of items: note (图片), article (文字), ganswer (回答), and video (视频).
Users can reply (评论) to the item and post danmakus (弹幕, bullet chats) on the video.
./src/pages/pc/item/detail/index.js
./src/pages/mobile/detail/index.js
https://bcy.net/item/detail/{item_id}
coser, illust, novel, group posts were originally numbered differently, but they all moved under item and renumbered around 2018.
It seems that most of the renumbered Snowflake IDs have a suffix of 0x00005F0E
, and they forgot to subtract the 8 hour time zone offset when converting.
For example:
- https://web.archive.org/web/20170216011735/http://bcy.net/coser/detail/100/1025104 → https://bcy.net/item/detail/6381490394403725070
- https://web.archive.org/web/20160822023250/http://bcy.net/illust/detail/10/154834 → https://bcy.net/item/detail/6107335442124791566
- https://web.archive.org/web/20160812015014/http://bcy.net/novel/detail/10022/522898 → https://bcy.net/item/detail/6273464828673679118
- https://web.archive.org/web/20141007061409/http://bcy.net/group/detail/11/1232 → https://bcy.net/item/detail/5904796101684256526
Collection (合集)
A collection is created by a specific user, and collection creators can only add or remove their own items to the collection.
An item can belong to at most one collection.
./src/pages/pc/collect/detail/index.js
./src/pages/mobile/collection/detail/index.js
https://bcy.net/collection/{collection_id}
Group (小组 / 问答)
Groups (小组) were originally subforums that accepted posts, but were later rebranded as questions (问题) that accepted answers.
A group (问答) is initiated (发起) by a specific user, and other users can post ganswers (which is a kind of item) to answer the group.
Each ganswer must belong to a group; each ganswer can still receive replies individually.
./src/pages/pc/group/list/index.js
https://bcy.net/group/list/{group_id}
./src/pages/mobile/group/index.js
https://bcy.net/group/list/{group_id} https://bcy.net/group/list/{group_id}?sort=zan
Tag (标签) / Circle (圈子)
Every user can attach any tag to their items or collections, and a tag can optionally be owned by an user (圈主).
Circles and tags were distinct at first, but they were merged together and renumbered around 2018.
For example, https://web.archive.org/web/20171019132729/https://bcy.net/circle/index/4023 becomes https://bcy.net/tag/2097 and https://bcy.net/circle/index/4023 becomes a synonym for https://bcy.net/tag/4023 which is a different tag.
./src/pages/pc/circle/index.js
https://bcy.net/tag/{circle_id} https://bcy.net/tags/name/{circle_name} https://bcy.net/circle/index/{circle_id}
./src/pages/mobile/circle/index.js
https://bcy.net/tag/{circle_id} https://bcy.net/tags/name/{circle_name} https://bcy.net/circle/index/{circle_id} https://bcy.net/tag/5798 ← https://bcy.net/illust, https://bcy.net/illust/toppost100 https://bcy.net/tag/399 ← https://bcy.net/coser, https://bcy.net/illust/toppost100 https://bcy.net/tag/72 ← https://bcy.net/novel, https://bcy.net/novel/toppost100 https://bcy.net/tag/3209 ← https://bcy.net/video/toppost100, https://bcy.net/video/list/{cid}
Some tags redirect to events. For example:
- https://bcy.net/tag/20626758 → https://bcy.net/huodong/1113
- https://bcy.net/tag/21148101 → https://bcy.net/huodong/1192
- https://bcy.net/tag/22129061 → https://bcy.net/huodong/1283
Huodong / Event (活动)
Events are organized by the official, and users can participate (参加) in the events with items. In this case, events appear as a special type of tag.
./src/pages/pc/static/huodong/nevent/index.js
./src/pages/mobile/static/huodong/index.js
https://bcy.net/huodong/{event_id} https://bcy.net/huodong/{event_id}?order=index https://bcy.net/huodong/{event_id}?order=index&p={page} https://bcy.net/huodong/{event_id}?order=hot https://bcy.net/huodong/{event_id}?order=hot&p={page}
Some events use dedicated layouts. For example:
Events using dedicated layouts |
---|
|
Some events redirect to other pages. For example:
- https://bcy.net/huodong/1192 → https://bcy.snssdk.com/magic/eco/runtime/release/60e423984a89ea0335449703?appType=banciyuan
- https://bcy.net/huodong/1283 → https://bcy.snssdk.com/magic/eco/runtime/release/62ce76a10b9ad40340f01a29?appType=banciyuan
Lists
./src/pages/pc/home/index/index.js
- https://bcy.net/ ← https://bcy.net/home/channel/circles, https://bcy.net/home/channel/illust, https://bcy.net/home/channel/coser, https://bcy.net/home/channel/novel
- https://bcy.net/?title=focus
./src/pages/pc/illust/index/index.js
./src/pages/pc/novel/index/index.js
./src/pages/pc/rank/index/index.js
- https://bcy.net/illust/toppost100
- https://bcy.net/illust/toppost100?type=week&date=20180602
- https://bcy.net/illust/toppost100?type=lastday&date=20180602
- https://bcy.net/illust/toppost100?type=newPeople&date=20180602
- https://bcy.net/coser/toppost100
- https://bcy.net/novel/toppost100
./src/pages/pc/video/rank/index.js
- https://bcy.net/video/toppost100
- https://bcy.net/video/toppost100?type=sitetop
- https://bcy.net/video/toppost100?type=newPeople
./src/pages/pc/group/home/index.js
./src/pages/mobile/home/channel/index.js
- https://bcy.net/
- https://bcy.net/home/channel/circles
- https://bcy.net/home/channel/discuss ← https://bcy.net/group/discover
- https://bcy.net/home/channel/illust
- https://bcy.net/home/channel/coser
- https://bcy.net/home/channel/novel
Video lists
Video lists other than https://bcy.net/video/list/8103 (热门, popular) may be completely broken, as other video lists return random unrelated items, not even limited to videos.
./src/pages/pc/video/index/index.js
https://bcy.net/video/list/{cid}
Search
./src/pages/pc/search/home/index.js
- https://bcy.net/search/home?k=半次元
- https://bcy.net/search/group?k=半次元
- https://bcy.net/search/user?k=半次元
Static
Error messages
./src/pages/pc/message/index.js
- https://bcy.net/u/0
- https://bcy.net/item/detail/0
- https://bcy.net/item/detail/9223372036854775807
- https://bcy.net/collection/0
- https://bcy.net/group/list/0
- https://bcy.net/tag/0
- https://bcy.net/tag/9223372036854775807
- https://bcy.net/huodong/0
- https://bcy.net/huodong/9223372036854775807
"Magic" landing pages
Some pages are made using the "Magic" (魔方) event landing page SDK[2][3][4], consisting of components from private NPM packages in the scopes @magic-module
and @magic-module-pc
, and the layout is built using window.__MAGIC__.data.schema
or window.__INITIAL_STATE__.components
.
For example:
- 创作课堂 (creative classroom): https://bcy.net/magic/eco/runtime/release/60f404af7634090359cb5002?appType=banciyuan
- 营业执照 (business license): https://bcy.net/magic/eco/runtime/release/63885581957c560475ee3b20?appType=banciyuan&magic_page_no=1
- https://bcy.snssdk.com/magic/page/ejs/5d78a28237a06502088a8605?appType=bcy
Short URLs
The pattern is https://bcy\.net/s/[0-9A-Za-z]+/
.
Mobile apps
The application ID for Android is com.banciyuan.bcywebview
, and the Bundle IDs for iOS are com.banciyuan.BCYCosplay
and com.banciyuan.lite
.
While the apps were removed from the App Store[5][6] and Android stores[7] on June 12, 2023, the Android package can still be found at https://zlinkurl.cn/574f[IA•Wcite•.today•MemWeb].
The app supports deep links with the scheme bcyapp-http
.
APIs
Web APIs are under https://bcy.net/apiv3/, but they are currently unstable (occasionally missing items and skipping some cursors) due to traffic bursts.
Mobile app API calls are POST requests, rate-limited, and encrypted with a constant AES key. They are under https://api.bcy.net/apiv2/ and https://api-hl.bcy.net/apiv2/.
Assets
Image
Most images are hosted under p3-bcy-sign.bcyimg.com, whose URLs are always protected by the session key \?x-expires=[0-9]+&x-signature=[0-9A-Za-z%2B%2F%3D]+
[8] that expires in 186 days (exactly 16,070,400 seconds).
There are other undocumented CDN domains that can bypass the session key, remove the watermark, and switch to the original resolution[9], but using them is currently not recommended as server admins may be alerted by unusual traffic bursts.
- img5.bcyimg.com , img9.bcyimg.com and user.bcyimg.com are hosts serving user-generated images that were directly exposed prior to 2017. After 2018, URLs under them are mapped to p3-bcy.bcyimg.com/banciyuan/ and p3-bcy-sign.bcyimg.com/banciyuan/ .
- https://p3-bcy.bcyimg.com/banciyuan/04d3c90ce01b4e58b6c35e9e199bd3fe~tplv-banciyuan-tl640.image and https://p3-bcy-sign.bcyimg.com/banciyuan/04d3c90ce01b4e58b6c35e9e199bd3fe~tplv-banciyuan-tl640.image?x-expires=1704991916&x-signature=bNBMWkAK%2BS5Pd%2F7GLbskShzpxLs%3D are identical.
- https://p3-bcy.bcyimg.com/banciyuan/Public/Upload/avatar/1326039/8c0e7aae4607412f82bf4a7a4486fe36/fat.jpg~tplv-banciyuan-abig.image and https://p3-bcy-sign.bcyimg.com/banciyuan/Public/Upload/avatar/1326039/8c0e7aae4607412f82bf4a7a4486fe36/fat.jpg~tplv-banciyuan-abig.image?x-expires=1704637427&x-signature=EeEkaVBwrUypyv8HZcPwKXrflTU%3D are identical.
- https://p3-bcy.bcyimg.com/banciyuan/Public/Upload/avatar/1326039/8c0e7aae4607412f82bf4a7a4486fe36/fat.jpg~tplv-banciyuan-obj.image is the compressed version of https://img5.bcyimg.com/Public/Upload/avatar/1326039/8c0e7aae4607412f82bf4a7a4486fe36/fat.jpg .
- https://p3-bcy.bcyimg.com/banciyuan/Public/Upload/avatar/1326039/8c0e7aae4607412f82bf4a7a4486fe36/fat.jpg~tplv-banciyuan-obj.image and https://static.bcyimg.com/Public/Upload/avatar/1326039/8c0e7aae4607412f82bf4a7a4486fe36/fat.jpg are identical (308KiB).
- https://img5.bcyimg.com/Public/Upload/avatar/1326039/8c0e7aae4607412f82bf4a7a4486fe36/fat.jpg , https://img9.bcyimg.com/Public/Upload/avatar/1326039/8c0e7aae4607412f82bf4a7a4486fe36/fat.jpg and https://user.bcyimg.com/Public/Upload/avatar/1326039/8c0e7aae4607412f82bf4a7a4486fe36/fat.jpg are identical (506KiB).
- URLs that themselves contain the patterns
/./
or//
will cause a signature mismatch. For example:- https://img5.bcyimg.com/./Public/Upload/coser/379/post/3//51d68824c462a.jpg is alive, while https://p3-bcy-sign.bcyimg.com/banciyuan/./Public/Upload/coser/379/post/3//51d68824c462a.jpg~noop.image?x-expires=1705103781&x-signature=mki6EqNtf6xt2GHFbR95oXShoVg%3D returns HTTP 403.
Video
The browser should use a decoded play_auth_token
attached in window.__ssr_data
from https://bcy.net/item/detail/{item_id}
to request PlayInfoList
from vod.bytedanceapi.com.
MainPlayUrl
in the PlayInfoList
of the response is under domains including v3-video.bcy.net, v6-video.bcy.net, v9-video.bcy.net and should be immediately requested, as it will expire soon.
External links
References
- ↑ 半次元停服公告[IA•Wcite•.today•MemWeb]
- ↑ 超魔方_企业自动化营销_一站式活动营销平台[IA•Wcite•.today•MemWeb]
- ↑ 活动落地页(魔方)--增长营销平台-火山引擎[IA•Wcite•.today•MemWeb]
- ↑ Might be related to @magic-microservices/magic[IA•Wcite•.today•MemWeb]
- ↑ 半次元-第一中文COS绘画小说社区:在 App Store 上的内容
- ↑ App Store 上的“半次元Lite版 - ACG爱好者社区”[IA•Wcite•.today•MemWeb]
- ↑ 半次元官方新版本-安卓iOS版下载-应用宝官网[IA•Wcite•.today•MemWeb]
- ↑ 鉴权方式 D--veImageX-火山引擎[IA•Wcite•.today•MemWeb]
- ↑ 图片处理配置--veImageX-火山引擎[IA•Wcite•.today•MemWeb]