Difference between revisions of "半次元"

From Archiveteam
Jump to navigation Jump to search
m (let's goooooooooo)
m (JustAnotherArchivist moved page Banciyuan to 半次元: Official name is in Chinese)

Revision as of 02:52, 4 July 2023

Archiveteam1.png Warriors interested in this project should recognize that Banciyuan appends your IP address in the HTML, which may appear in the Wayback Machine.
Banciyuan (半次元)
半次元 logo
URL https://bcy.net/
Status Closing
Archiving status In progress...
Archiving type Unknown
Project source banciyuan-grab
Project tracker banciyuan
IRC channel #wuciyuan (on hackint)

Banciyuan (半次元, literally "Half Dimension") is a Chinese ACG community founded in 2014 and acquired by ByteDance, the company that owns TikTok, in 2018.

The website will become read-only on June 30, 2023 and will close on July 12, 2023[1], possibly because it was deemed unprofitable.

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:

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:

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 

./src/pages/pc/static/huodong/acg2019/index.js

./src/pages/pc/static/huodong/14thNewStar/index.js

./src/pages/pc/static/huodong/painterScholarship2020/index.js

./src/pages/pc/static/huodong/hnzrbwg/index.js

Some events redirect to other pages. For example:

Lists

./src/pages/pc/home/index/index.js

./src/pages/pc/illust/index/index.js

./src/pages/pc/novel/index/index.js

./src/pages/pc/rank/index/index.js

./src/pages/pc/video/rank/index.js

./src/pages/pc/group/home/index.js

./src/pages/mobile/home/channel/index.js

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

Static

URL list 

./src/pages/pc/static/about/index.js

./src/pages/pc/static/agreement/index.js

./src/pages/mobile/static/agreement/index.js

./src/pages/pc/static/committee/index.js

./src/pages/pc/static/help/index.js

./src/pages/mobile/static/help/index.js

./src/pages/pc/static/joinus/index.js

./src/pages/pc/notfound/index.js ./src/pages/mobile/notfound/index.js

Old non-React pages

Error messages

./src/pages/pc/message/index.js

"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:

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[IAWcite.todayMemWeb].

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

Images

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.

Videos

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