Open-source project
Popukok/smg_live avatar
Popukok/smg_live

smg_live: a Tampermonkey script for smoother playback on SMG's live and replay pages

五星体育 | 电视直播 | 解锁回放 | SMG TV | TV Live | Unlock TV Program Replay

718 stars43 forksJavaScriptMIT

At a glance

What is it?
smg_live is a single-file userscript that makes the SMG live television pages play more reliably in a browser, working around the site's own playback limits. It is fragile by nature, since the upstream site changes its stream sources and blocks IP addresses when refreshed too often, and the README keeps a dated log of every one of those changes.
Who is it for?
smg_live is worth installing for a viewer who lives in a region where the SMG live site refuses to serve certain channels or stalls constantly, and who is prepared to reinstall it when the upstream site changes. It is not a tool for a developer, since the repository is one JavaScript file with a README and no build system, API or test suite, and it is not reliable enough to build a workflow on.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 11 days ago.
What is it written in?
Mainly JavaScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 20, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A browser-side patch for a broadcaster site that fights back

smg_live is a userscript for the SMG video live pages, and the README describes its purpose in one line: in the browser it provides a smoother viewing experience on the SMG video live pages, and does compatibility optimisation for some browser environments.

The scope is worth being clear about. This is a Tampermonkey script, one JavaScript file named `smg_fivestar.user.js` sitting at the root of a repository that contains nothing else but the README and the licence. There is no build step, no package, no module, no plugin API. You install a script in your browser and it acts on the page when you visit it.

The target is the SMG replay and live page, linked in the README as live.kankanews.com/huikan?id=10, where you pick a channel and watch. The interest of the project for a reader is not that it enables something the site does not offer at all, but that the site itself is in flux. The README's own change log records that the site repeatedly alters how it serves streams, and the script is the community's answer to those changes.

For a viewer, the value is a working player on a page that otherwise refuses to serve a channel, shows an empty programme guide, or reports an unsupported audio or video format. For an engineer, the interest is in how the log is written: the entries are dated, terse, and describe what changed on the site side, with a note that the log exists only to record those site-side changes.

Two stream paths, timeshift and live, and a moving source

The mechanism is visible in the dated entries at the top of the README, and it is the part that explains both the script's value and its fragility.

The 26.08.21 entry records that the interface stopped returning M3U8 addresses, possibly for business reasons, and that the sports news replay was kept. The 26.09.08 entry records that addresses switched from the Volcengine source, written as volc-stream, to the Tencent source, written as tencent-vods, and that replay, written as timeshift, and live, written as token, were separated into two sets of paths, described as blocking the upgrade test with some probability. The 26.09.09 entry records that the Volcengine source was restored, and that whether the switch to the Tencent source is permanent is unknown, so it is recorded only. The 26.09.13 entry records that the official side tightened its policy: M3U8 links have a very short validity period, new links have to be fetched frequently, and live streams of some programmes easily trigger a CDN block on the IP address, so the page should be refreshed as little as possible while playing.

Three things follow from that log. The script is not a generic player, it is a set of paths into a specific backend that keeps moving. The separation of replay and live into two path sets means the script has to know which one it is serving, which is why a naive single-path approach fails. And the short link lifetime is why the FAQ spends so much space on not refreshing the page.

The last line of that section is the key to reading the rest of the README: the entries exist only to record changes on the website side. They are a maintenance log for the reader, not a changelog of the script's own features.

Installing it: Tampermonkey, one click, then open the live page

The install path is deliberately short, and the README gives it in three steps.

First, install the Tampermonkey extension in your browser, which the README marks as recommended. Second, click the link below to install the script. The distribution page offers one option, the official version served from the GitHub source, at the raw URL https://raw.githubusercontent.com/Popukok/smg_live/refs/heads/main/smg_fivestar.user.js

That link points at a raw userscript file on the main branch, so the script manager fetches the current version of `smg_fivestar.user.js` directly from the repository rather than from a package index. There is no version pinning in the install flow, which matters later.

Third, open the SMG live page, live.kankanews.com/huikan?id=10, and pick a channel to watch.

There is one permission step that catches people out, and the README has a dedicated FAQ entry for it. On the first use of the extension you have to tick the option to allow user scripts. In Edge and Chrome this lives under extensions, then Tampermonkey, then into the details view. Without that switch, the script never runs.

The symptom of forgetting it is a specific error rather than a blank page. If the site reports that the content is copyright restricted and that the television network broadcast service is not available at that time slot, the README's answer is that the script did not take effect, and the fix is the same permission switch. That message is otherwise confusing, because it reads like a rights decision rather than a browser setting.

The failure modes: IP blocks, unsupported formats and an empty guide

The FAQ is the most useful part of the repository, because it is a list of things that will go wrong and what to do about each one.

The first failure is a site response that says the content is copyright restricted for that time slot. As described above, the cause is usually the extension permission rather than a rights issue.

The second is an endless spinner, or all channels failing to open, or an empty programme guide. The README attributes this to refreshing too often and being blocked by the site, and says to wait half an hour for the block to release automatically, or to switch networks by redialing a broadband connection or changing proxy. This lines up with the 2026-09-13 log entry about the CDN blocking IP addresses when new links are fetched too often.

The third is the message about an unsupported audio or video format, with a suggestion to try refreshing. The README's explanation is that the site has most likely carried out another round of its own countermeasures, and the advice is to wait patiently for a fix, or to submit a pull request if you have a new approach.

That last entry is the honest summary of the project's contract. When the site changes, the script breaks, and the fix comes from whoever notices first. There is no compatibility matrix and no error message that distinguishes a site change from a local problem, so the practical habit is to check the dated log in the README before assuming your own setup is broken.

Browser and device coverage, and the Tampermonkey requirement

The compatibility section is short and has two warnings attached to it.

The supported set is the latest Chrome, Firefox and Safari, with Tampermonkey as the recommended script manager. The first warning is about Violentmonkey: because of technical differences between the two extensions, a script developed on Tampermonkey may not work on Violentmonkey, so the recommendation is to use Tampermonkey. The second warning matters if you are a tinkerer: if you have modified the script yourself, turn off automatic updates in the manager, otherwise the upstream version overwrites your local changes. Given that the install link points at the raw file on the main branch, that overwrite is the default behaviour.

Mobile is covered through browsers that support user scripts. The README lists Kiwi Browser, Chrome and Edge on Android as the closest to the desktop experience, Firefox for Android as supporting extensions and scripts, and the lightweight X browser on Android as supporting user scripts. On Apple devices, Safari on iPhone and iPad is used directly, with iOS 15 or later required.

The Apple instructions are spelled out in two variants. On macOS Safari you can choose between Userscripts, described as free and open source and the recommendation, installed from the App Store, enabled in Safari settings under extensions, then pointed at a script directory in the Userscripts app where you drop `smg_fivestar.user.js`, or Tampermonkey installed from the App Store, enabled in Safari settings, allowed to access the site, and then the script imported. On iPhone and iPad the steps are the same shape: install Userscripts or Tampermonkey from the App Store, enable it under Settings, Safari, Extensions and allow access to kankanews.com, place the script in the Userscripts directory or import it through the share sheet, then open the live page and choose a channel.

The final note covers the viewing experience on iPhone: fullscreen uses the native iOS video fullscreen, and the CSS fullscreen has been adapted to the dynamic viewport units and the safe area for the notch and the home indicator.

A one file project with a maintenance burden carried by its users

The repository is three files: LICENSE, README.md and the userscript. The licence is MIT, and the README closes with a line saying the repository content is for learning and exchange only.

That framing is a fair description of how the project works in practice. Because the script is delivered from the raw main branch, there is no version pinning, no changelog of the script itself, and no release history, which the repository confirms by having no GitHub releases. There is also no issue tracker guidance or contribution process beyond the invitation to submit a pull request in the FAQ answer about unsupported formats.

Activity is current, with the last push to the main branch on 2026-10-12. What that means for a user is that fixes arrive as a new commit to the file, and the script manager pulls the new version on the next update check, unless automatic updates are off.

The consequence is a project whose quality is inseparable from the community's attention. The README's own log makes the dependency explicit: the site changes, someone writes a fix, the file on the main branch changes, and everyone else gets it on the next update. The people best placed to do that are the people watching the streams daily, which is why the project asks for pull requests rather than tracking an issue backlog.

That is a defensible arrangement for a script whose entire purpose is to keep pace with a moving target. It is also why the log of site-side changes, kept in the README rather than in commit messages, is the artifact worth bookmarking: it tells you what the site is doing now, and whether the script you are running is the one that knows about it.

Editorial conclusion

smg_live is worth installing for a viewer who lives in a region where the SMG live site refuses to serve certain channels or stalls constantly, and who is prepared to reinstall it when the upstream site changes. It is not a tool for a developer, since the repository is one JavaScript file with a README and no build system, API or test suite, and it is not reliable enough to build a workflow on. Before you rely on it, read the dated change log in the README, because the script tracks the site's backend closely and the last recorded change on 2026-09-13 describes a very short M3U8 link lifetime, and expect to hit the IP block described in the FAQ if you refresh often while a stream is playing.

Frequently asked questions

How do I install smg_live in my browser?

Install the Tampermonkey extension, which the README recommends, then use the install link for the official version served from the GitHub source to add `smg_fivestar.user.js`, and open the SMG live page at live.kankanews.com/huikan?id=10 to pick a channel. On first use you must enable the option to allow user scripts in the extension details view.

Why does the SMG page say the content is copyright restricted?

The README explains that this message usually means the script did not take effect, and the fix is to tick the option to allow user scripts in the extension settings, which in Edge and Chrome sits under extensions, then Tampermonkey, then the details view.

What should I do when the smg_live player spins forever or the guide is empty?

The README attributes this to refreshing too often and being blocked by the site, and says to wait about half an hour for the block to release automatically, or to change network by redialing the broadband connection or switching proxy. The 2026-09-13 log entry notes that M3U8 links now have a very short validity and that frequent fetching can trigger a CDN block on the IP address.

Official sources

  1. Issues
  2. License: MIT
  3. Popukok/smg_live on GitHub
  4. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/popukok-smg-live.svg)](https://hysenlabs.com/projects/popukok-smg-live)

Was this useful?