Skip to content

Linktime timestamp not working  #93

Closed

Description

@seyadeodin

Hello I'm trying to use the {{linknote}} timestamp but, when I click on it it does nothing, on either view or edit mode.

I tried it in two devices. It works normally on my Windows 11, but not on my arch linux. Both share the same obsidian config files and version. My vault on Arch vault on arch is on an external disk.

Probably not the problem, but below are two examples of timestamp links generated.

[00:00:12](obsidian://podnotes?episodeName=Deleuze+vs.+Hegel+%26+Heidegger%2C+Death%2C+%26+A+Thousand+Plateaus+w+Dr.+Brent+Adkins+on+Gilles%27+birthday%21&url=https%3A%2F%2Ffeed.podbean.com%2Ftheoryunderground%2Ffeed.xml&time=12.074103) 

[00:08:06](obsidian://podnotes?episodeName=79%3A+Gilles+Deleuze%2C+pt.+1%3A+Against+the+Dialectic&url=https%3A%2F%2Fanchor.fm%2Fs%2F471f49a0%2Fpodcast%2Frss&time=486.13627)]

Activity

  1. weaverlings commented on Feb 7, 2025

    @weaverlings

    I have the same issue, on desktop with windows 10 :(

  2. chhoumann commented on Jun 15, 2026

    @chhoumann
    Owner

    Closing as resolved on master (HEAD 8ad7aa5); this ships in the next release (latest published is 2.16.0, which predates the main fix).

    What was wrong

    The old URI handler resolved feed episodes via FeedParser.findItemByTitle, which threw on a fetch failure or a title miss with no surrounding try/catch → an unhandled promise rejection that surfaced as a silent no-op (exactly "clicking does nothing"). It also did a blanket episodeName.replace(/\+/g, " ") for decoding.

    What fixed it

    • fix(uri): preserve '+' in episode titles and paths for timestamp links #181 (8ad7aa5) — the main fix. encodePodnotesURI now encodes spaces as %20 and a literal + as %2B, which round-trips losslessly through Obsidian's decodeURIComponent-only protocol decoder. The handler resolves the episode via ordered candidates ([raw, "+"-collapsed-to-space]) so legacy +-encoded links exactly like the two in this report still resolve, matching feed titles via trim().toLowerCase(). The silent throw is replaced with visible notices ("Episode not found" / "Could not load the podcast feed").
    • fix(timestamps): keep links working after played #169 (ac05f57) — removed the old "please click timestamp again" double-click requirement (clicks now seek directly) and preserved time=0.

    Verification (real Obsidian, not just unit tests)

    I built current master into a dev vault and fired the actual registered obsidian://podnotes handler — with params decoded exactly as Obsidian decodes them — against the live feed.podbean.com/theoryunderground feed from your report, using current episode titles carrying the same special characters you hit (& , ' ! " |):

    Scenario Result
    Legacy +-encoded link (your link format), episode not loaded → feed fetch + switch ✅ switches to the correct episode
    New %20-encoded link, hard special chars (" ' ! ,) ✅ switches
    Same episode already loaded → seek ✅ jumps to the time directly (no second click)
    time=0 and fractional time (e.g. 12.074103) ✅
    Nonexistent title ✅ graceful "Episode not found" notice — no crash, no silent hang

    15 unit tests across URIHandler / encodePodnotesURI also pass.

    About "works on Windows 11, does nothing on Arch Linux"

    The title-resolution code has no platform-specific branching and resolved titles identically on both OSes even before these fixes — so a clean Windows-vs-Linux split is the classic signature of the OS never handing the obsidian:// URL to Obsidian at all, i.e. the obsidian:// scheme not being registered with the desktop environment (common with the AppImage / xdg-mime / a vault on an external disk). If clicks still do nothing on Linux after updating, that part is OS-level URI registration rather than PodNotes — make sure the obsidian:// scheme is associated with your Obsidian install. The separate in-app no-op that the Windows 10 follow-up most likely hit is fixed by #181.

    One narrow caveat

    A link generated by a pre-#181 build whose episode title contains a literal + (e.g. C++ Weekly) can still miss, because the old encoding made a literal + and a space indistinguishable after decoding (documented in #181 as the single unrecoverable legacy case). Re-capturing the timestamp on the new version produces an unambiguous link that works. Note this does not affect the links in this issue — none of them contain a literal +.

    If you're on the release that includes #181 and a specific link still fails, please reopen with the exact link plus your Obsidian version/platform and I'll dig in. Thanks for the detailed report and the example links — they made this straightforward to verify.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions