BiliPai

Verified safeOpen sourceExclusive
—
No reviews reviews
44
downloads
8.0
android

AI summary

Third-party Bilibili client built with Kotlin and Jetpack Compose, focused on lightweight video viewing with dash streaming, bullet comments, livestreams, and offline caching. Supports Material 3/Miuix themes, picture-in-picture, background playback, and plugin extensibility. Version 0.2.

Generated by AI. May contain inaccuracies.

Screenshots

About this app

BiliPai Native, Pure, Scalable Third-Party Bilibili Android Client

Modern Android client for everyday use: videos, dramas, livestreams, feeds, downloads, plug-ins, and big-screen experiences.

Project Positioning

BiliPai is an Android client built with Kotlin and Jetpack Compose. The goal is not to reproduce the entire entrance of the official app, but to make the common viewing, interaction and management process lighter, quieter and more adjustable.

· Daily use priority: Homepage, search, video details, drama, live broadcast, news, message, personal center and offline cache coverage mainstream process. · Playback experience is preferred: dash, high-definition image quality, bullet screen, gestures, background playback, picture-in-picture, listening to video mode, and horizontal and vertical screen strategies continue to be optimized. Native experience priority: Material You, Material 3, Miuix, liquid glass, flat/folding screen layout and system media control access. · Scalable priority: Built-in plug-ins are stable, JSON rule plug-ins can be imported by URL, and source-level plug-in capabilities continue to advance. · Privacy Restraint: Login information is stored locally, and permissions are converged as much as possible. Usage statistics only record anonymous daily activities and basic usage.

Important

Apply default settings for generic scenarios.After installation, it is recommended to enter the settings to adjust the appearance, animation, playback, barrage, background playback and plug-in options

📄 License GNU General Public License v3.0

🎯Project author:github@jay3-yy

What's new

v0.2.9Oct 5, 2026
  • [Change] The video page of Joined Community Contribution PR #870 (@CoderTCY) has been enhanced. The following voting/rating/BAS advanced bullet screen, playback bottom bar and comments related items are all from this PR
  • [Add] Blue Snow Maid brand dynamic effects are separated into an independent brand-motion sharing module that uniformly manages role resources and packaged verification scripts; static placeholders are no longer embedded in the installation package
  • [Add] Enhancement of playback session: Add playback failure reason classification (network, decoding, audio, authentication, restriction, source) and recovery stage reporting, support track list, sound quality, and track language selection
  • [Add] Offline playback error policy: When offline video playback fails, it provides actionable recovery suggestions based on the reason
  • [Change] Logic such as chat message timeline, dynamic multi-account caching, and home page loading sequence are extracted into independent policy classes and supplemented with unit tests
  • [Fixed] Problem with the player error recovery policy synchronizing with the playback page status; avoid duplicate loading of offline players
  • [Fixed] The voting card no longer reserves a safe area for the bottom playlist (aligned with the official client): The card is positioned and limited in height according to the entire video viewport. After it is no longer compressed, it can only scroll internally and truncate the end options and status lines.
  • [Optimization] After voting, the voting card displays the real-time proportion of each option and highlights your choices (align with the official client, remove the "â ̃ Voted" text prompt at the bottom), and keep the "Voting Submission..." prompt during submission; Select items use the light-colored container with the current color matching (blue color matching means light blue, primaryContainer + onPrimaryContainer text), and the unselected items remain translucent white, with obvious highlighting contrast.
  • [Optimization] Tighten the left and right white space below the bottom bar of the playback bottom bar: the spacing between the bottom of the bottom bar of the mobile phone stall is 8→4dp, the spacing between left and right is 12→6dp, and the height of the touch container of the progress bar is 20→ 12dp (synchronous tightening of tablet/ultra-wide stall); The left and right shrinkage of the full-screen progress bar and the sub-P segment bar is changed to follow the left and right white space in the bottom bar, and the interactive card avoidance size is updated synchronously.
  • [Adjustment] Ordinary videos, drama dramas, offline videos and live bullet screens are uniformly converted into font sizes and strokes according to the system display density, and no longer follow in-app interface zooming or display size fine-tuning; the basic font size for embedded/vertical screen is 15dp, and the full screen is 18dp, retaining the user font size magnification and the server font size level, and removing the additional 1.18 times font size magnification for vertical screen immersive players. The stroke thickness is set to dp, and the default is 1.5dp; full-screen switches and re-measures the retained bullet screen, and the timeline will not be cleared due to font size classification.
  • [Fixed] Interactive cards (voting, scoring, triple connection, UP/link) intercept entire card clicks and no longer penetrate into the player's click/double click gesture: Clicking on the card will no longer mistakenly invoke the control bar, Double-clicking on the card will no longer mistakenly trigger play/pause, causing the progress bar to stop; the card's own options, stars and close buttons will still respond as usual.
  • [Optimization] The upper and lower padding of text buttons such as "Subtitles/More" in the bottom bar is unified to 2dp, which is no longer classified according to the width of the window; single-line text such as time, sound quality, image quality, and speed speed explicitly tightens the line height, reducing the upper and lower white space, keeping the font size, icon and card positioning unchanged.
  • [Optimization] The bottom playback bar tightens playback, bullet screen and full-screen icons, time and operation text font size, input area line height and bottom spacing; the sound quality button is no longer forced to reach 48dp, and the local icon button is measured by the playback slot position, retaining native touch extension. The interactive card safe area synchronously adopts the tightened play bar size.
  • [Fixed] The card positioning safe area follows the actual progress bar position: the bottom progress bar of the embedded player will no longer deduct the default bottom padding to prevent the card from being pushed up by excessive blank space.
  • [Fixed] Interactive card positioning permanently excludes the security area of the bottom control bar, and the control bar still retains the same range when hidden; the coordinates of the lower right corner of the server are mapped to the lower right corner of the security area, and only the actual intersection is subtracted from the black edge. The full-screen navigation bar adopts a safe area that is not affected by display and concealment to avoid card displacement when the control bar is displayed and concealed.
  • [Fixed] The voting and scoring card bodies are fixed at 130dp and 180dp respectively, and the close button leaves an additional 14dp; the full screen no longer stretches according to the width of the player, and only shrinks when the narrow viewports cannot fit down.
  • [Fixed] Voting and scoring cards adopt server-side duration, which is no longer extended to 8 seconds to avoid overlapping of scoring cards remaining until subsequent consecutive cards appear; the display window uses left closed and right open boundaries, and exits immediately at the end moment. Pause and drag back are calculated based on the current playback progress.
  • [Optimization] The three-link barrage complements the official client-style "three-link only" and "three-link plus follow" cards: translucent black horizontal bars, white likes and favorites icons, solid coin icons and independent pink follow buttons, remove the extra close buttons and native buttons of the three-link card to take high occupancy. Three links and follow actions are triggered separately. When you have followed, three links can still be used, and large follow text remains visible.
  • [Fixed] Attention and triple bullet screens use server duration and posX_2/posY_2 percentage coordinates, and retain margins and trimming positions in the player's viewports; compatible with old coordinate fields to prevent the card of the reference video 00:24 from being hidden in advance by a fixed 3-second duration.
  • [Add] The scoring barrage displays unscored and results based on the screenshot of the official client: horizontal translucent black background card, white hollow star, and actual number of participants. After the scoring is confirmed, the average score of gold star and yellow is displayed. The close button is located on the outside of the card. The number of participants, average score, and existing individual scores are read in the count, avg_score, and mid_score in the barrage metadata; after the submission is successful, the statistics are re-checked, and the average score is not calculated based on the individual score.
  • [Fixed] The real voting barrage correctly resolves the idx/desc options and my_vote, and submits the base option number of the server instead of the array subscripts; when options are missing, the voting details are checked in the card, and options, loading, retry and submission will no longer jump to external windows. Scoring and voting will only lock the selection after successful submission, and can be retried after failure or cancellation.
  • [Optimization] The ordinary voting barrage is changed to a compact translucent black card on the right side of the player based on the official client screenshot: the question is displayed directly, options use left-aligned gray small rounded entries, and the circle close button hangs over the upper right of the card; the card uses a fixed width and is subject to the upper limit of the playback viewport, all options and interactions are embedded in the card.
  • [Optimization] Mandatory 48dp layout occupancy for special card barrage cancels attention, triple connection, close, voting and scoring controls; the general close button uses 32dp icon slots, and the voting and scoring controls uses compact content size to simultaneously tighten the card width and close button reserved area. Material 3 minimum layout occupancy is only turned off within the card, retaining native touch extensions and not affecting global buttons.
  • [Fixed] When the player is hidden after pausing the video, drop-down comments will first restore the video picture; when the player is hidden or has not yet been fully expanded, drop-down refresh is disabled, and refresh is allowed after it is fully displayed. Both MIUIX and Material 3 retain the list status to prevent refresh and player recovery from competing for the same gesture.
  • [Add] The ordinary video mobile phone details page supports sliding up comments or hiding video images from the Building in the Building List when paused; the player can be restored after sliding back to the top of comments, clicking back to top, resuming playback or leaving comments. This interaction is not limited by the scrolling zoom out mode during playback, and the restored picture will not automatically continue the manually paused video.
  • [Optimization] The repeated white space between the first-level comment and the cancellation body of the building to the reply button, and the reply button to the bottom of the item, retaining only the spacing provided by the 32dp minimum height of the reply button itself; the operation bar is clicked and deleted buttons are replaced with a fixed 32dp height container to prevent the Material minimum touch target from holding the operation bar high.
  • [Fixed] First-level comments and comment image previews no longer display absolute time unconditionally. The "Detailed Comment Time Display" switch is uniformly followed: when closed, it is displayed according to relative time rules, and when opened, it displays y-MM-dd HH:mm:ss. Saving comment pictures always retains the full release time in seconds.
  • [Add] Native Mode 9 BAS script parsing and animation timeline, supporting text, buttons, SVG paths, templates, object copying, nested string parallel animation, attribute buffering, parent-child level and arbitrary progress recovery; independent diversion with Mode 7 array advanced barrage
  • [Add] Ordinary video players are connected to the BAS native Canvas overlay and support fonts, strokes, anchors, three-axis rotation and interactive buttons;seek is executed in the player, and video and drama jumps are retained through external browsers. P and time parameters
  • [Fixed] Invalid BAS scripts are no longer displayed as ordinary scrolling text; special barrage switches, colors/weights/keywords/user blocking and plug-in processing override the BAS, and keywords contain text displayed subsequently in the animation
  • [Optimization] Special barrage is changed to small-volume byte/time index and short playback window loading; only scenes that are still valid and in the next 3 seconds are retained. The slice index can be used one by one, and window requests can be made in parallel at most 4; No longer leave special slices of entire video in memory or write them to the online playback cache
  • [Optimization] Cold jump reuses known life cycles, only compiles metadata for previously unknown BAS and discards expired payload; local special barrage reads randomly, and users actively download offline and stream files in fragments, no longer Spit out a full byte list first
  • [Fixed] Switching between the alpha attribute and zero-duration transparency of SVG paths correctly participates in the timeline, preventing multi-frame paths from being superimposed in advance
  • [Repair] The BAS digit lexicon is changed to direct scanning to avoid copying a complete large script to the native heap when Android ICU regular matches each number, resulting in low memory killing of processes; retaining decimal numbers, scientific counting, compound time and error position semantics

About this version

Version
0.2.9 (438)
Size
26.21 MB
Requires Android
8.0
Target SDK
26
Architecture
arm64-v8a
Downloads
44
Updated
Oct 5, 2026
Package
com.android.purebilibili

Similar apps

Ratings & reviews

—
0 ratings
  • 5
    0
  • 4
    0
  • 3
    0
  • 2
    0
  • 1
    0

Write a review

Tap a star to rate this app