academic-portals

Download course PDFs from SIGAA portals via JSF POST requests.

Updated May 10, 2026
One-click install
npx skills add https://github.com/Mateus2411/Hermes-PersonalBot --skill academic-portals
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: academic-portals
Source: https://github.com/Mateus2411/Hermes-PersonalBot/tree/main/skills/research/academic-portals
Command: npx skills add https://github.com/Mateus2411/Hermes-PersonalBot --skill academic-portals

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

It solves the problem of manually logging into Brazilian academic portals and struggling to download PDFs/slides that are served through JSF flows with non-direct download links.

Core Features & Use Cases

  • Portal navigation and material discovery: Guides you through SIGAA course pages to locate files under lesson and “Arquivos” sections.
  • JSF-backed download execution: Uses session cookie (JSESSIONID/SERVERID) plus extracted JSF form state (javax.faces.ViewState) and correct POST parameters to retrieve files that would otherwise open in _blank.
  • Two download paths for reliability: Supports both the “Principal/Aulas” path with 40-hex hash IDs and the “Arquivos” tab path with numeric IDs for listing and fallback workflows.
  • Use case: When you need an entire course’s PDFs for study or offline review, this workflow helps automate retrieval of the materials by extracting the required IDs and performing the POST-based download.

Quick Start

Tell the AI: “I have SIGAA credentials and I’m on the course materials page—extract the JSF parameters (JSESSIONID, SERVERID, javax.faces.ViewState, and the file ID) and download the available PDFs using the Principal/Aulas path.”

Frequently Asked Questions about academic-portals

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I automate downloading course materials from SIGAA when files open in a new tab instead of downloading directly?

To automate downloading course materials from SIGAA, you must extract session cookies (JSESSIONID, SERVERID), the current javax.faces.ViewState, and the JSF button parameter from onclick handlers, then issue cookie-authenticated POST requests to the correct form action endpoints to retrieve PDFs.

What is the jsfcljs POST flow and why do I need it for retrieving PDFs from academic portals?

The jsfcljs POST flow is a JavaServer Faces mechanism used by portals like SIGAA to serve files without stable direct URLs. Retrieving PDFs requires extracting the JSF form state and executing authenticated POST requests to trigger the server-side download execution.

How do I download course PDFs from SIGAA using the Arquivos tab versus the Principal Aulas path?

To download course PDFs from SIGAA, use the Principal/Aulas path for 40-hex hash IDs or the Arquivos tab path for numeric IDs. Both paths require session cookies and the javax.faces.ViewState to execute POST-based downloads reliably.

Do I need to manually extract JSESSIONID and SERVERID cookies before downloading files from Brazilian academic portals?

Yes, you need to manually extract JSESSIONID and SERVERID cookies from your authenticated SIGAA session. These cookies, along with the extracted javax.faces.ViewState, are mandatory for issuing the POST requests required to retrieve PDFs.

Why does my web scraping script fail to download PDFs from SIGAA even when I have the direct link?

Web scraping scripts fail to download PDFs from SIGAA because files are served through JSF flows without stable direct URLs. You must extract the JSF button parameter from onclick handlers and perform cookie-authenticated POST requests to the form action endpoint.

Can I use this automated retrieval process for academic portals that do not use JSF jsfcljs flows?

No, this automated retrieval process is specifically designed for Brazilian SIGAA-style academic portals relying on JSF jsfcljs POST flows. Portals using standard direct download links or different authentication mechanisms are outside its intended scope.