Skip to content

dsouravcom/intro-skipper-ext

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Intro Skipper Logo

Intro Skipper

Skip intros automatically on your favorite streaming platforms

A powerful browser extension that intelligently detects and skips intro sequences across multiple streaming services with zero configuration required.


πŸ“₯ Download & Install

Browser Download Link Status
Chrome Chrome Web Store βœ… Available
Firefox Firefox Add-ons βœ… Available

πŸ”§ Manual Installation (Developer Mode)

Chrome/Edge Installation

  1. Download the latest release
  2. Open chrome://extensions/ in your browser
  3. Enable "Developer mode"
  4. Click "Load unpacked" and select the chrome/ folder from the extension directory

Firefox Installation

  1. Download the latest release
  2. Open about:debugging in Firefox
  3. Click "This Firefox" in the sidebar
  4. Click "Load Temporary Add-on"
  5. Navigate to the firefox/ folder and select manifest.json

Note: For permanent installation in Firefox, you'll need to sign the extension through Mozilla's Add-on Developer Hub.


🎭 Supported Streaming Services

Service Logo Auto-Skip Status
Netflix Netflix βœ… Intro 🟒 Active
Crunchyroll Crunchyroll βœ… Intro 🟒 Active
Hotstar Hotstar βœ… Intro 🟒 Active
Prime Video Prime Video ⏳ Intro 🟑 Planned

πŸ”„ More services coming soon! Request a service


πŸ“‹ Table of Contents

πŸš€ Features

✨ Instant Detection - Automatically detects skip buttons with zero delays
🎯 Smart Fallbacks - Multiple detection methods ensure reliability
πŸ”§ Easy Configuration - Simple toggle controls for each service
πŸ’Ύ Local Storage - All settings stored securely in your browser
πŸ”’ Privacy First - No data collection or external requests
⚑ Lightweight - Optimized for minimal resource usage
🎨 Clean Interface - Modern, intuitive settings panel


πŸ“Έ Screenshots

Extension Popup Interface
Extension Popup Interface
Settings Panel
Settings Panel

βš™οΈ Configuration

🌐 Global Settings

  • οΏ½ Master Toggle: Enable/disable auto-skip for all streaming services
  • πŸŽ›οΈ Service Management: Individual control for each streaming platform

🎭 Service-Specific Settings

  • πŸ”˜ Per-Service Toggle: Enable/disable individual streaming services
  • πŸ” Automatic Detection: Seamlessly works on supported platforms
  • ⚑ Instant Skipping: No delays or configuration needed

🎨 Interface

  • πŸ–±οΈ One-Click Access: Quick toggle from browser toolbar
  • βš™οΈ Advanced Settings: Detailed configuration in extension options
  • πŸ“± Responsive Design: Works on all screen sizes

🎯 How It Works

Advanced Button Detection

  1. Primary Selector: Service-specific CSS selectors
  2. Fallback Selectors: Generic button patterns (button[class*="skip"])
  3. Text Search: Searches for "Skip Intro" text content
  4. Parent Element: Attempts clicking clickable parent elements
  5. Aria Labels: Checks aria-label attributes

🎯 Features

  • Instant Skipping: No delays, immediate response when button is detected
  • Multi-method Detection: Multiple fallback detection strategies
  • Clean Interface: Simple toggle controls for each service
  • Local Storage: All data stored locally in your browser

πŸ” Troubleshooting

Extension Not Working

  • Ensure extension is enabled and pinned
  • Check that global toggle is ON
  • Verify service-specific settings
  • Refresh the streaming page

Performance Issues

  • Check for conflicts with other extensions
  • Clear browser cache and cookies
  • Monitor browser console for errors

πŸ› οΈ Development & Customization

πŸ“ Project Structure

intro-skipper/
β”œβ”€β”€ README.md                       # Project documentation
β”œβ”€β”€ chrome/                         # Chrome extension files
β”‚   β”œβ”€β”€ manifest.json              # Chrome extension manifest
β”‚   β”œβ”€β”€ background.js               # Background service worker
β”‚   β”œβ”€β”€ popup.html                  # Extension popup interface
β”‚   β”œβ”€β”€ popup.js                    # Popup functionality
β”‚   β”œβ”€β”€ manage.html                 # Settings page
β”‚   β”œβ”€β”€ manage.js                   # Settings functionality
β”‚   β”œβ”€β”€ License                     # License file
β”‚   β”œβ”€β”€ content-scripts/            # Content scripts directory
β”‚   β”‚   β”œβ”€β”€ crunchyroll.js         # Crunchyroll skip logic
β”‚   β”‚   β”œβ”€β”€ hotstar.js             # Hotstar skip logic
β”‚   β”‚   └── netflix.js             # Netflix skip logic
β”‚   └── icons/                      # Extension icons
β”‚       β”œβ”€β”€ icon16.png             # 16x16 icon
β”‚       β”œβ”€β”€ icon48.png             # 48x48 icon
β”‚       └── icon128.png            # 128x128 icon
└── firefox/                        # Firefox extension files
    β”œβ”€β”€ manifest.json               # Firefox extension manifest
    β”œβ”€β”€ background.js               # Background script
    β”œβ”€β”€ popup.html                  # Extension popup interface
    β”œβ”€β”€ popup.js                    # Popup functionality
    β”œβ”€β”€ manage.html                 # Settings page
    β”œβ”€β”€ manage.js                   # Settings functionality
    β”œβ”€β”€ browser-compatibility.js    # Firefox compatibility layer
    β”œβ”€β”€ package.json                # Firefox packaging config
    β”œβ”€β”€ web-ext-config.json         # Web-ext tool configuration
    β”œβ”€β”€ LICENSE                     # License file
    β”œβ”€β”€ DEVELOPMENT.md              # Firefox development guide
    β”œβ”€β”€ BROWSER_COMPARISON.md       # Browser differences documentation
    β”œβ”€β”€ content-scripts/            # Content scripts directory
    β”‚   β”œβ”€β”€ crunchyroll.js         # Crunchyroll skip logic
    β”‚   β”œβ”€β”€ hotstar.js             # Hotstar skip logic
    β”‚   └── netflix.js             # Netflix skip logic
    └── icons/                      # Extension icons
        β”œβ”€β”€ icon16.png             # 16x16 icon
        β”œβ”€β”€ icon48.png             # 48x48 icon
        └── icon128.png            # 128x128 icon

🀝 Contributing

We welcome contributions from the community! Here's how you can help improve the extension:

πŸš€ Getting Started

  1. Fork the Repository

    git clone https://github.com/dsouravcom/intro-skipper-ext
    cd intro-skipper-ext
  2. Set Up Development Environment

    For Chrome Development:

    • Install a code editor (VS Code recommended)
    • Enable Developer Mode in Chrome (chrome://extensions/)
    • Load the chrome/ folder as an unpacked extension

    For Firefox Development:

    # Install web-ext tool for Firefox development
    npm install --global web-ext
    
    # Navigate to Firefox directory
    cd firefox/
    
    # Install development dependencies
    npm install
    
    # Run extension in temporary Firefox profile
    web-ext run
  3. Development Workflow

    • Make changes to extension files
    • Chrome: Refresh extension in chrome://extensions/
    • Firefox: Extension auto-reloads with web-ext run
    • Test functionality on streaming platforms

🎯 Ways to Contribute

πŸ› Bug Reports

  • Use the GitHub Issues template
  • Include browser version and OS details
  • Provide step-by-step reproduction steps
  • Add screenshots or console logs if applicable

✨ Feature Requests

  • Check existing issues to avoid duplicates
  • Clearly describe the proposed feature
  • Explain the use case and benefits
  • Consider implementation complexity

πŸ”§ Code Contributions

Adding New Streaming Services:

  1. Create content-scripts/[service-name].js in both chrome/ and firefox/ directories

  2. Add match pattern to both manifest.json files:

    Chrome manifest.json:

    {
        "matches": ["*://[service-domain]/*"],
        "js": ["content-scripts/[service-name].js"],
        "run_at": "document_idle"
    }

    Firefox manifest.json:

    {
        "matches": ["*://[service-domain]/*"],
        "js": ["content-scripts/[service-name].js"],
        "run_at": "document_idle"
    }
  3. Implement skip detection logic:

    // Follow existing patterns in netflix.js or crunchyroll.js
    const SERVICE_NAME = "ServiceName";
    const SKIP_SELECTORS = ["service-specific-selectors"];
  4. Add service to manage.js DETECTED_SERVICES object in both browser directories

  5. Test in both Chrome and Firefox environments

Improving Detection Logic:

  • Test skip button selectors on the actual streaming site
  • Add fallback methods for different UI states
  • Ensure compatibility with service UI updates
  • Add proper error handling and logging

UI/UX Improvements:

  • Follow existing design patterns
  • Ensure responsive design
  • Test accessibility features
  • Maintain consistent styling

πŸ“‹ Code Standards

JavaScript Style

// Use strict mode
"use strict";

// Descriptive variable names
const skipIntroButton = document.querySelector('[data-testid="skipIntro"]');

// Error handling
try {
    await performAction();
} catch (error) {
    console.error("[ServiceName] Action failed:", error);
}

// Async/await preferred over promises
async function loadSettings() {
    const result = await chrome.storage.sync.get(["setting"]);
    return result.setting;
}

File Organization

  • Keep service-specific logic in separate files
  • Use consistent naming conventions
  • Add descriptive comments for complex logic
  • Remove debug code before submitting

Testing Checklist

  • Extension loads without errors in both Chrome and Firefox
  • Skip functionality works on target service in both browsers
  • Settings save and load correctly in both browsers
  • No console errors in production
  • Firefox-specific: Extension passes web-ext lint
  • Chrome-specific: Extension follows Manifest V3 guidelines
  • Cross-browser compatibility verified
  • Doesn't conflict with other extensions

πŸ”„ Pull Request Process

  1. Create Feature Branch

    git checkout -b feature/new-streaming-service
    git checkout -b fix/button-detection-issue
  2. Make Changes

    • Follow code standards above
    • Test thoroughly on actual streaming sites in both Chrome and Firefox
    • Update documentation if needed
    • Ensure cross-browser compatibility
  3. Testing Commands

    Chrome Testing:

    # Load unpacked extension in chrome://extensions/
    # Enable Developer Mode and refresh extension after changes

    Firefox Testing:

    cd firefox/
    web-ext run                    # Run in temporary profile
    web-ext lint                   # Check for errors
    web-ext build                  # Build for distribution
  4. Commit Guidelines

    git commit -m "feat: add support for Disney+ skip intro"
    git commit -m "fix: improve Netflix button detection in Firefox"
    git commit -m "docs: update installation instructions for both browsers"
  5. Submit Pull Request

    • Use descriptive title and description
    • Reference any related issues
    • Include testing notes for both Chrome and Firefox
    • Add screenshots for UI changes
    • Mention any browser-specific considerations

πŸ“ Documentation

When contributing, please update:

  • README.md for new features
  • Code comments for complex logic
  • Manifest permissions for new APIs
  • Version number for releases

πŸŽ–οΈ Recognition

Contributors will be recognized in:

  • README.md contributors section
  • GitHub contributor graphs

πŸ”’ Privacy & Security

  • No Data Collection: Extension operates entirely locally
  • No External Requests: Works completely offline
  • Browser Storage Only: Settings stored in Chrome sync storage
  • Open Source: Full code available for review
  • No Tracking: Zero analytics or user monitoring

πŸ“œ License & Credits

  • GNU GENERAL PUBLIC LICENSE: Free to use, modify, and distribute
  • Inspired by: Netflix-Prime-Auto-Skip
  • Not Affiliated: With Netflix, Crunchyroll, or any streaming service

πŸ† Contributors

Thank you to all contributors who help improve this extension!

Made with contrib.rocks.


⚠️ Disclaimer

πŸ“’ Important Notice

This extension is NOT affiliated with, endorsed by, or connected to any streaming service including Netflix, Crunchyroll, Hotstar, Prime Video, or any other platform.

πŸ”’ Legal & Compliance

  • Third-Party Tool: This is an independent browser extension developed by the community
  • No Official Support: Streaming services do not provide support for this extension
  • Use at Your Own Risk: Users are responsible for compliance with streaming service terms of service
  • No Warranties: Extension provided "as-is" without any guarantees of functionality
  • Service Changes: Streaming platforms may update their interfaces, potentially affecting extension functionality

πŸ›‘οΈ Terms of Use

  • Personal Use Only: Extension intended for personal, non-commercial use
  • Respect Content: Users should respect content creators and consider watching introductions when appropriate
  • No Circumvention: Extension does not circumvent any security measures or DRM protection
  • Local Operation: Extension operates entirely within your browser using publicly available webpage elements

πŸ“ Trademark Notice

All streaming service names, logos, and trademarks are the property of their respective owners. Use of these names and logos is for identification purposes only and does not imply endorsement.


Made with ❀️ for the streaming community | Not affiliated with any streaming service

About

This extension is specifically build for autometically skip intro in multiple Streaming services.

Resources

License

Stars

Watchers

Forks

Contributors