All Projects → thcolin → nipper

thcolin / nipper

Licence: other
🌶 💽 Nipper - Youtube playlist (& video) ripper

Programming Languages

javascript
184084 projects - #8 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to nipper

libwinmedia
[Archived] A cross-platform simple media playback library for C/C++.
Stars: ✭ 35 (+52.17%)
Mutual labels:  mp3, aac, ogg, vorbis, opus
audio-metadata
A library for reading and, in the future, writing audio metadata. https://audio-metadata.readthedocs.io/
Stars: ✭ 41 (+78.26%)
Mutual labels:  mp4, mp3, ogg, vorbis, opus
loudgain
ReplayGain 2.0 loudness normalizer based on the EBU R128/ITU BS.1770 standard (-18 LUFS, FLAC, Ogg, MP2, MP3, MP4, M4A, AAC, ALAC, Opus, ASF, WMA, WAV, AIFF, WavPack, APE)
Stars: ✭ 127 (+452.17%)
Mutual labels:  mp4, mp3, aac, opus
Atldotnet
Fully managed, portable and easy-to-use C# library to read and edit audio data and metadata (tags) from various audio formats, playlists and CUE sheets
Stars: ✭ 180 (+682.61%)
Mutual labels:  mp4, tags, mp3, aac
Recorder
html5 js 录音 mp3 wav ogg webm amr 格式,支持pc和Android、ios部分浏览器、和Hybrid App(提供Android IOS App源码),微信也是支持的,提供H5版语音通话聊天示例 和DTMF编解码
Stars: ✭ 2,891 (+12469.57%)
Mutual labels:  webm, mp3, recorder, ogg
Av Converter
[av-converter.com] Audio and Video Converter, and YouTube downloader. Convert to MP3, MP4, AAC, FLAC, AC3, WAV, etc.
Stars: ✭ 97 (+321.74%)
Mutual labels:  downloader, mp4, mp3, aac
aplay-
a simple BitPerfect player
Stars: ✭ 23 (+0%)
Mutual labels:  mp4, mp3, aac
Recordutil
support free record mp3 amr wav aac format可以录制android ios兼容的aac mp3格式切换录制格式也支持体积极少的amr格式,只需要改变工厂方法改变一句话就能实现,和iOS不撕逼录音,这是一个通用解决方案,你值得拥有!
Stars: ✭ 91 (+295.65%)
Mutual labels:  mp3, aac, recorder
Spotivy
🎼 Download music videos from Spotify playlists
Stars: ✭ 64 (+178.26%)
Mutual labels:  downloader, mp4, mp3
Music Metadata
Stream and file based music metadata parser for node. Supporting a wide range of audio and tag formats.
Stars: ✭ 455 (+1878.26%)
Mutual labels:  mp4, tags, mp3
slibs
Single file libraries for C/C++
Stars: ✭ 80 (+247.83%)
Mutual labels:  mp4, mp3, aac
Musicdownloader
Material design YouTube mp3/mp4 downloader
Stars: ✭ 70 (+204.35%)
Mutual labels:  downloader, mp4, mp3
audio-tag-analyzer
Extracts metadata music metadata found in audio files
Stars: ✭ 18 (-21.74%)
Mutual labels:  tags, mp3, vorbis
Gogglesmm
Goggles Music Manager
Stars: ✭ 41 (+78.26%)
Mutual labels:  mp4, mp3, aac
Trinity
android video record editor muxer sdk
Stars: ✭ 609 (+2547.83%)
Mutual labels:  mp4, aac, recorder
Youtubedownloader
Downloads videos and playlists from YouTube
Stars: ✭ 2,202 (+9473.91%)
Mutual labels:  mp4, webm, mp3
uos
United Open-libraries of Sound. United procedures for open-source audio libraries. For FPC/Lazarus/fpGUI/MSEgui.
Stars: ✭ 112 (+386.96%)
Mutual labels:  mp3, ogg, opus
simple-web-audio-recorder-demo
A simple HTML/JS demo that uses WebAudioRecorder.js to record audio on a web page
Stars: ✭ 141 (+513.04%)
Mutual labels:  mp3, ogg, vorbis
Axiom
An FFmpeg GUI for Windows
Stars: ✭ 560 (+2334.78%)
Mutual labels:  mp4, webm, mp3
Mediafile
A unified reader of metadata from audio & video files.
Stars: ✭ 138 (+500%)
Mutual labels:  mp4, mp3, aac

Nipper

🌶 💽  YouTube playlist (& video) ripper

Parse YouTube video or playlist link, fix inaccurate metadata (cover, artist & song), choose export codec (mp4, webm, aac, mp3 or ogg), and download on-by-one or zipped (best stream chosen by default) ! Every process are made directly in the browser, like stream downloading or converting, with the help of Kagami/ffmpeg.js ❤️

Currently, covert art support is limited to mp3 codec.

Screenshot

Scripts

  • dev start a development server at :8000
  • proxy start proxy at :7000 (required)
  • doc start a documentation server at :3000
  • test run linter, unit tests and e2e tests
  • build build a production bundle into dist folder

Configuration

Copy .env.example to .env and configure it as you wish

# YOUTUBE SERVICE:
# Go to [Google Cloud Platform](https://console.cloud.google.com/apis/credentials),
# Enable "Youtube Data API v3" service
# Create "API key" credentials
# Restrict API key by domain name to secure access
YOUTUBE_API_KEY=''

Roadmap

  • Write e2e tests with Cypress
  • Add badges (like travis and standard with Shields)
  • Configure https
  • Record performances, memory, cpu, time for big playlist dig action
  • Create redux + rxjs workflow diagram
  • Use Side Sheet over Modal for configuration

Database

{
  tracks: {
    'youtube#track#_IS208pkFxs': {
      uri: 'youtube#track#_IS208pkFxs',
      service: 'youtube',
      kind: 'track',
      id: '_IS208pkFxs',
      title: 'Midival Punditz - Raanjhan',
      author: 'inMindbodysoul',
      link: 'https://youtu.be/_IS208pkFxs',
      channel: 'UCgEmK9phN-_Ty7d_Jv6BQTg',
      description: 'Two musicians, Gaurav Raina and Tapan Raj, contributing to the evolution of music.. featuring Abida Parveen',
      thumbnail: 'https://i.ytimg.com/vi/_IS208pkFxs/sddefault.jpg',
      duration: '06:05',
      artist: 'Midival Punditz',
      song: 'Raanjhan',
      attachments: {
        'cover.jpg': [Blob],
        'track.mp3': [Blob],
        'track.aac': [Blob],
        'track.ogg': [Blob],
        'track.mp4': [Blob],
        'track.webm': [Blob],
      }
    },
  }
}

State

{
  api: {
    ready: true,
    broken: false
  },
  digger: {
    'youtube#playlist#PLcyIgDOXdSITaK7lgF_Cc_k2RqV3OlLeF': {
      uri: 'youtube#playlist#PLcyIgDOXdSITaK7lgF_Cc_k2RqV3OlLeF',
      service: 'youtube',
      kind: 'playlist',
      id: 'PLcyIgDOXdSITaK7lgF_Cc_k2RqV3OlLeF',
      done: true,
      error: null
    }
  },
  downloader: {
    default: {},
    zip: {
      'youtube#track#Qjp4uxGH9jI': 27,
      'youtube#track#sZUp9rXAK50': 81
    }
  },
  library: {
    'youtube#playlist#PLcyIgDOXdSITaK7lgF_Cc_k2RqV3OlLeF': {
      uri: 'youtube#playlist#PLcyIgDOXdSITaK7lgF_Cc_k2RqV3OlLeF',
      service: 'youtube',
      kind: 'playlist',
      id: 'PLcyIgDOXdSITaK7lgF_Cc_k2RqV3OlLeF',
      title: 'INDIA',
      author: 'Vincent Anthony',
      link: 'https://www.youtube.com/playlist?list=PLcyIgDOXdSITaK7lgF_Cc_k2RqV3OlLeF',
      channel: 'https://www.youtube.com/channel/UC4T79MEKtNfa-PKpgwF0y9g',
      description: '',
      total: 8,
      thumbnail: 'https://i.ytimg.com/vi/a4F1Dm9Fat8/hqdefault.jpg',
      synced: 8,
      tracks: [
        'youtube#track#_IS208pkFxs',
        'youtube#track#a4F1Dm9Fat8',
        'youtube#track#Qjp4uxGH9jI',
        'youtube#track#sZUp9rXAK50',
        'youtube#track#x9BUOcEUCAk',
        'youtube#track#428Orzv3grA',
        'youtube#track#M7gDEwUb4_Q',
        'youtube#track#qhWlptdnLBs'
      ],
      latest: 1540085743390
    }
  },
  preferences: {
    format: 'mp3'
  },
  selection: [
    'youtube#track#Qjp4uxGH9jI',
    'youtube#track#sZUp9rXAK50',
  ],
  toaster: {}
}

Research

  • How to improve metadata writing ?
    • Codecs
      • Audio : mp3/mp3, m4a/aac, ogg/vorbis, opus/opus
      • Video : mp4/mp4, webm/webm
    • FFMPEG
      • mp3 : ffmpeg -i infile.mp3 -i cover.jpg -map 0 -map 1:0 -c:a copy -metadata artist="$ARTIST" -metadata title="$SONG" outfile.mp3
        • title
        • author
        • cover
      • aac : ffmpeg -i infile.m4a -c:a copy -metadata artist="$ARTIST" -metadata title="$SONG" -f mp4 outfile.m4a
      • vorbis : ffmpeg -i infile.ogg -c:a copy -metadata artist="$ARTIST" -metadata title="$SONG" outfile.ogg
      • opus : ffmpeg -i infile.opus -c:a copy -metadata artist="$ARTIST" -metadata title="$SONG" outfile.opus
        • title
        • author
        • cover
          • opus metadata is like ogg (cf. vorbis)
    • Unable to build ffmpeg.js with cover art support, need to compile zlib with emscripten (for mp3)
    • ffmpeg doesn't support cover art for ogg (vorbis, opus) and aac ffmpeg metadata

Helpful

Alternatives

Thanks

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].